特定のクラスでの並べ替えに問題があります。データが並べ替えられません。両方のリストのサイズは異なりますが、リストにはリスト1にキーがあります。FPはキーと値のメンバーを持つBeanクラスです。データはソートされていません。同じ順序のlist1に、最後に追加のキーを追加するリストが必要です。
public class MyList {
public static void main(String[] args) {
FP f = new FP();
f.setKey("s");
f.setValue("he");
FP f1 = new FP();
f1.setKey("t");
f1.setValue("she");
List<FP> list = new ArrayList<FP>();
list.add(f);
list.add(f1);
FP f2 = new FP();
f2.setKey("t");
f2.setValue("he");
FP f3 = new FP();
f3.setKey("s");
f3.setValue("she");
FP f4 = new FP();
f4.setKey("u");
f4.setValue("she");
List<FP> list1 = new ArrayList<FP>();
list1.add(f2);
list1.add(f3);
list1.add(f4);
final Map<FP, Integer> indices = new HashMap<FP, Integer>();
for (int i = 0; i < list.size(); i++) {
indices.put(list.get(i), i);
}
Collections.sort(list1, new Comparator<FP>() {
public int compare(FP o1, FP o2) {
int index1 = (Integer) (indices.containsKey(o1) ? indices
.get(o1) : +1);
int index2 = (Integer) (indices.containsKey(o2) ? indices
.get(o2) : +1);
return index1 - index2;
}
});
for (int i = 0; i < list1.size(); i++) {
System.out.println("the data is" + list1.get(i).getKey());
}
}
}