我有一个对象列表,其中每个对象都有变量 previous 和 next ,它们的类型是 String
List testList=new ArrayList();
CustomObject o1=new CustomObject();
o1.setPrevious(null);
o1.setNext("a");
CustomObject o2=new CustomObject();
o2.setPrevious("a");
o2.setNext("b");
CustomObject o3=new CustomObject ();
o3.setPrevious("b");
o1.setNext("END");
testList.add(o3);
testList.add(o1);
testList.add(o2);
但我需要按 o1、o2、o3 的顺序得到它。我已经写了一个比较器来做到这一点,但我没有做对
class OrderComparator implements Comparator{
public int compare(CustomObject obj1, CustomObject obj2) {
if(obj1.getPrevious()==null)
return -1;
else if(obj2.getPrevious()==null)
return 1;
else if(obj1.getNext()!=null&&obj2.getPrevious()!=null&& obj1.getNext().equals(obj2.getPrevious()))
return -1;
else if(obj1.getNext()!=null&&obj2.getPrevious()!=null&&obj2.getNext().equals(obj1.getPrevious()))
return 1;
else if(obj1.getNext().equals("END"))
return -1;
else if(obj2.getNext().equals("END"))
return 1;
else return 0;
}
} Collections.sort(testList,new OrderComparator());