Java List Lambda 排序

2024 年 9 月 10 日 | 阅读 3 分钟

Java 是一门知名的计算机语言,已经使用了二十多年。几项基本功能使开发人员能够构建高效而优雅的代码。例如,List sort() 函数用于按升序或降序对 List 进行排序。在本教程中,我们将探讨如何使用 lambda 表达式来利用 Java List sort() 函数。

Java List 是一个有序集合,允许我们保存和修改项目集合。有时,我们需要根据给定标准(如字母顺序、数字顺序或自定义顺序)对 List 进行排序。

Lambda 表达式作为 Java 8 的新语言特性引入。在 Java 中,Lambda 表达式是表示函数的轻量级且简洁的方式。它由一组参数、一个箭头符号 (->) 和一个函数体组成。Lambda 表达式可用于构建包含单个抽象方法的函数式接口。

在深入细节之前,让我们先定义一个 Lambda 表达式。Lambda 表达式是表示匿名函数的简写方式,它可以作为参数传递。它是用于构建函数式接口的技术的俚语。

现在让我们看一下 List sort() 函数。使用 sort() 函数可以按升序或降序对 List 的成员进行排序。它有两种变体:

sort() 方法的第一种变体用于按升序对 List 条目进行排序,而第二种变体用于按降序对 List 元素进行排序。

要使用带 lambda 表达式的 List sort() 函数,我们必须首先创建一个 Comparator 对象,该对象比较两个 List 成员并根据它们的比较结果返回一个值。然后可以将 Comparator 对象作为参数传递给 sort() 函数。

让我们看一些实际的例子来理解这是如何工作的。

示例 1:按升序对 String List 进行排序

输出

[apple, banana, kiwi, orange]

在此示例中,我们使用 lambda 表达式来生成和按升序对 String List 进行排序。我们提供了一个 lambda 表达式,该表达式比较两个字符串并根据结果返回值。然后,sort() 函数使用此 lambda 表达式对 List 进行排序。

示例 2:按降序对 Integer List 进行排序

输出

[8, 6, 5, 2, 1]

在此示例中,我们创建一个 Integer List 并使用 lambda 表达式按降序对其进行排序。会传递一个 lambda 表达式,该表达式比较两个整数并根据比较结果返回一个值。

示例 3:按升序排列自定义对象列表

ListSort.java

输出

[Alice (22), Bob (30), John (25), Mary (27)]

解释

在此示例中,我们定义了一个 Person 类,其中包含两个字段:name 和 age。为了方便起见,我们还提供了一个构造函数、getter 和一个覆盖的 toString() 函数。

我们在 main() 函数中创建一个 Person 对象列表,并将其与 lambda 表达式一起传递给 sort() 方法,该 lambda 表达式根据姓名比较两个 Person 对象。sort() 函数使用此 lambda 表达式按姓名的升序对 List 进行排序。

最后,我们使用 System.out.println() 输出排序后的 List。