![](/img/trans.png)
[英]Java 8: Idiomatically creating a Comparator for ordering objects based on their index in a List
[英]Order objects based on ordering of member variables without comparator
说我有一个对象
Person
private int age;
private String name;
我想使用Arrays.sort()
类的东西对它们进行自动Arrays.sort()
,以使低龄出现在高龄之前。
常用的方法是使用比较器,但是我那里有许多有用的实用程序功能,是否有更干净的方法可以做到这一点?
使您的班级实现Comparable
。
lambdaj
的示例解决了您的用例:
List<Person> sortedByAgePersons = sort(persons, on(Person.class).getAge());
将Java 8与Lambda结合使用:
personList.sort((p1, p2) -> Integer.compare(p1.age, p2.age));
要么
Collections.sort(personList, (p1, p2) -> Integer.compare(p1.age, p2.age));
犯了错误
您还可以实现接口Comparable并重写compareTo(...)方法。
这些不能保证其清洁的方法,但是它们只是比较的不同方法。 仅当您要以不遵循自然顺序的方式对对象进行排序时,使用Comparator才有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.