更新时间:2021-09-06 08:34:15
可比$ c>和
Comparator
是两个不同的接口,用于相似的目的。 Collections.sort
想要一个 Comparator
,这使您可以灵活地修改可以比较对象的默认方式(或不比较) ,取决于您要实现的目标)。
Comparable
and Comparator
are two different interfaces, used for similar purposes. Collections.sort
wants a Comparator
and this allows you the flexibility to modify the default way objects might be compared (or not, depends on what you want to achieve)
首先创建一个基础对象,其中包含您需要存储的值...
Start by creating a base object, which contains the values you need to store...
public class Solomon {
private int age;
private String name;
public Solomon(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
然后创建比较器
可以比较所罗门
实例的方式...
Then create a Comparator
which can compare the instances of Solomon
the way you need to...
public class SolomanAgeComparator implements Comparator<Solomon> {
@Override
public int compare(Solomon o1, Solomon o2) {
return o1.getAge() - o2.getAge();
}
}
和/或
public class SolomanNameComparator implements Comparator<Solomon> {
@Override
public int compare(Solomon o1, Solomon o2) {
return o1.getName().compareTo(o2.getName());
}
}
然后使用其中一个对列表
值...
Then use either one to sort the List
of values...
List<Solomon> a1 = new ArrayList<Solomon>();
a1.add(new Solomon(21, "solomon"));
a1.add(new Solomon(26, "solomons"));
a1.add(new Solomon(20, "solomonjking"));
Collections.sort(a1, new SolomanNameComparator());