如何使用 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]
廣告