如何使用 Java 中帶有 Lambda 的 Stream API 對集合進行排序?
Stream API 是實現 Java 中函數語言程式設計的有效方法。它通常與lambda 表示式結合使用,並提供執行資料操作操作(如分類、過濾、對映、reduce等)的高效方法。
在以下示例中,我們可以使用Stream API對集合進行排序。它透過使用Comparator 介面的sorted() 方法提供排序邏輯。如果我們有兩個 Comparator 介面例項,並且需要透過複合條件(按第一個比較器,然後按第二個比較器)進行排序,我們可以透過在第一個例項上呼叫thenComparing() 方法並傳入第二個例項來使用這兩個比較器。
示例
import java.util.*;
import java.util.stream.*;
public class LambdaSortCollectionTest {
public static void main(String args[]) {
Stream<Employee> emps = Stream.of(
new Employee("Raja"),
new Employee("Ramesh"),
new Employee("Surya"),
new Employee("Jai"),
new Employee("Adithya"));
Comparator<Employee> c1 = Comparator.comparing(e -> e.name.length());
Comparator<Employee> c2 = (e1, e2) -> e1.name.compareTo(e2.name);
List<Employee> list = emps.sorted(c1.thenComparing(c2)).collect(Collectors.toList());
System.out.println(list);
}
}
// Employee class
class Employee {
public String name;
public Employee(String n) {
name = n;
}
@Override
public String toString() {
return name;
}
}輸出
[Jai, Raja, Surya, Ramesh, Adithya]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP