一、基本使用方法
Collections.sort方法可以用来对自定义对象进行排序。要实现这一点,需要在调用该方法时传入一个比较器,该比较器用于指定如何比较对象中的值。
举个例子,假设有一个自定义对象Person,其中包含姓名和年龄两个属性,我们可以使用以下代码对该对象列表进行按年龄排序:
List<Person> people = Arrays.asList(new Person("John", 25), new Person("Jane", 32));
Collections.sort(people, (p1, p2) -> p1.getAge() - p2.getAge());
这样就可以按照person对象的age属性进行排序,也可以按照其他属性排序
请注意,如果需要按照降序排序,可以将比较器更改为:
Collections.sort(people, (p1, p2) -> p2.getAge() - p1.getAge());
这样就可以按照降序排序了
二、利用compare来实现
Collections.sort() 可以通过传入一个Comparator来排序,这个Comparator里面有一个compare方法。这个方法需要实现比较两个对象的逻辑,并返回一个整数值。
这个方法的签名如下:
int compare(T o1, T o2)
如果返回值是0,则认为这两个对象相等;如果返回值是大于0的整数,则认为第一个对象大于第二个对象;如果返回值是小于0的整数,则认为第一个对象小于第二个对象。
举个例子,假设有一个自定义对象Person,其中包含姓名和年龄两个属性,我们可以使用以下代码对该对象列表进行按年龄排序:
List<Person> people = Arrays.asList(new Person("John", 25), new Person("Jane", 32));
Collections.sort(people, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
或者使用lambda表达式
List<Person> people = Arrays.asList(new Person("John", 25), new Person("Jane", 32));
Collections.sort(people, (p1, p2) -> p1.getAge() - p2.getAge());
这样就可以按照person对象的age属性进行排序了。
请注意,如果需要按照降序排序,可以在compare方法中返回p2.getAge() - p1.getAge()。文章来源:https://www.toymoban.com/news/detail-539899.html
提示:更多内容可以访问Clang’s Blog:https://www.clang.asia文章来源地址https://www.toymoban.com/news/detail-539899.html
到了这里,关于使用Collections.sort方法来对自定义对象进行排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!