使用Collections.sort方法来对自定义对象进行排序

这篇具有很好参考价值的文章主要介绍了使用Collections.sort方法来对自定义对象进行排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、基本使用方法

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()。

提示:更多内容可以访问Clang’s Blog:https://www.clang.asia文章来源地址https://www.toymoban.com/news/detail-539899.html

到了这里,关于使用Collections.sort方法来对自定义对象进行排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包