我在给定类中排序时遇到问题,数据没有得到排序,这里两个列表的大小不相等,但列表在 list1 中存在键。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());
}
}
}