Mil*_*hev 3 java lambda java-8
我有以下java类:
public class Customer {
private long id;
public long getId() {
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
我也有一个List<Customer> customers.Customer.getId()使用lambda表达式对列表进行排序的最优雅方法是什么?
现在我有这个代码:
Comparator<Customer> customerComparator = (previousCustomer, nextCustomer) ->
Long.compare(previousCustomer.getId(), nextCustomer.getId());
customers.sort(customerComparator);
Run Code Online (Sandbox Code Playgroud)
但是,如果我需要为每个不同的排序或每个不同的通用列表编写比较器,它会感到笨拙.可以用一行代码完成吗?
Mar*_*nik 12
我想你可能正在寻找这种Comparator.comparing...()方法:
customers.sort(comparingLong(Customer::getId))
Run Code Online (Sandbox Code Playgroud)
Pet*_*rey 10
在Java 8中,您可以在一行上书写.
customers.sort((a, b) -> Long.compare(a.getId(), b.getId());
Run Code Online (Sandbox Code Playgroud)
如果你做的Customer implements Comparable<Customer>就可以做到
customers.sort(Customer::compare);
Run Code Online (Sandbox Code Playgroud)
要么
customers.sort(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |