java - 在 Java 中对对象列表进行排序的最优雅的方法是什么?

标签 java lambda java-8

<分区>

我有以下 java 类:

public class Customer {
    private long id;

    public long getId() {
        return id;
    }
}

我还有一个List<Customer> customers .按 Customer.getId() 对列表进行排序的最优雅方式是什么?使用 lambda 表达式?

现在我有这段代码:

Comparator<Customer> customerComparator = (previousCustomer, nextCustomer) ->
        Long.compare(previousCustomer.getId(), nextCustomer.getId());

customers.sort(customerComparator);

但感觉很笨拙,尤其是当我需要为每个不同的类别或每个不同的通用列表编写一个比较器时。一行代码能搞定吗?

最佳答案

我认为您可能正在寻找 Comparator.comparing...() 方法:

customers.sort(comparingLong(Customer::getId))

关于java - 在 Java 中对对象列表进行排序的最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32072653/

相关文章:

android - Kotlin 数据类中的函数作为参数导致分割错误

java - 使用 java 流从包含 List<String> 的 List<Object> 检索 List<String>

java - 转换成Java 8函数

java - 在 Jboss Wildfly 上部署 EAR 文件时失败

java - 如何在jsp页面的html标签内放置html标签

java - Java 线程中的 ObjectInputStream 失败

java - HTTP 响应代码 : expected time between informational code (1xx) and non-informational code

c++ - 作为仿函数的方法模板

c# - 有没有办法指定 "empty"C# lambda 表达式?

java - 使用 Java 8 流 API 创建字符串映射和排序列表