【发布时间】:2015-08-18 12:37:35
【问题描述】:
我有以下 java 类:
public class Customer {
private long id;
public long getId() {
return id;
}
}
我还有一个List<Customer> customers。使用 lambda 表达式按Customer.getId() 对列表进行排序的最优雅的方法是什么?
现在我有这个代码:
Comparator<Customer> customerComparator = (previousCustomer, nextCustomer) ->
Long.compare(previousCustomer.getId(), nextCustomer.getId());
customers.sort(customerComparator);
但是感觉很笨拙,特别是如果我需要为每个不同的排序或每个不同的通用列表编写一个比较器。这可以用一行代码完成吗?
【问题讨论】:
-
内联
customerComparator变量==>一行代码。 -
在你的
Customer类中实现Comparable并使用Collections.sort(customers)如果你不必使用lambda 会不会更好 -
请查看方法参考 [docs.oracle.com/javase/tutorial/java/javaOO/… trail