我列出了Animal
如下s:
ArrayListanimals = new ArrayList (); animals.add(new Animal(1, "animal1", 50, "10 Janvier 2016", "Noir", 4, true)); animals.add(new Animal(2, "animal2", 50, "10 Janvier 2016", "Noir", 4, true)); animals.add(new Animal(3, "animal3", 50, "10 Janvier 2016", "Noir", 4, true)); animals.add(new Animal(4, "animal4", 50, "10 Janvier 2016", "Noir", 4, true)); animals.add(new Animal(5, "animal5", 50, "10 Janvier 2016", "Noir", 4, true));
我想ArrayList
用他们的身份证明我的动物名单.从我所见,我必须使用比较器.
这是我到目前为止创造的......
public class ComparatorAnimal implements Comparator{ public int compare(Animal animals.get(0), Animal animals.get(1) { return animals.get(0).idAnimal - animals.get(1).idAnimal; }
Gianni B... 9
public class ComparatorAnimal implements Comparator{ public int compare(Animal animals.get(0), Animal animals.get(1) { return animals.get(0).idAnimal - animals.get(1).idAnimal; }
方法签名是错误的:您不是比较Animal
两个Animal
对象的两个列表.然后你比较两个id,你不需要减去它.只需使用Integer类中的相同方法即可.
像这样改变你的方法:
public class ComparatorAnimal implements Comparator{ public int compare(Animal o1, Animal o2) { return Integer.compare(o1.idAnimal, o2.idAnimal); }
现在您必须使用已排序的集合(如TreeMap而不是ArrayList)或调用 Collections.sort(yourList, yourComparator)
public class ComparatorAnimal implements Comparator{ public int compare(Animal animals.get(0), Animal animals.get(1) { return animals.get(0).idAnimal - animals.get(1).idAnimal; }
方法签名是错误的:您不是比较Animal
两个Animal
对象的两个列表.然后你比较两个id,你不需要减去它.只需使用Integer类中的相同方法即可.
像这样改变你的方法:
public class ComparatorAnimal implements Comparator{ public int compare(Animal o1, Animal o2) { return Integer.compare(o1.idAnimal, o2.idAnimal); }
现在您必须使用已排序的集合(如TreeMap而不是ArrayList)或调用 Collections.sort(yourList, yourComparator)