1. filter操作
filter()
方法用于根據給定的條件過濾列表中的元素,僅保留滿足條件的項。
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);List<Integer> res = list.stream().filter(a -> a % 2 == 0).collect(Collectors.toList());for(Integer it :res){System.out.println(it);}
Collectors屬于 package java.util.stream
;
2. Sorted操作
sorted()
方法可以對流中的元素進行排序,可以使用自然順序或自定義Comparator。
List<String> names = Arrays.asList("Bob", "Alice", "Charlie", "David");List<String> sortedNames = names.stream().sorted().collect(Collectors.toList()); // 自然排序List<String> reverseSortedNames = names.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); // 倒序排序
3. GroupingBy操作
groupBy()方法用于將流中的元素按照指定的屬性進行分組,返回的是Map類型結果。
List<Employee> employees = ... // 假設Employee類有department屬性Map<String, List<Employee>> groupedEmployees = employees.stream().collect(Collectors.groupingBy(Employee::getDepartment));
4.map操作
map 方法是 Stream 接口中的一個中間操作,它接受一個 Function 接口作為參數。這個 Function 接口定義了如何將流中的元素映射為另一個元素。map 方法返回一個新的 Stream,其中包含由原始流中的元素經過函數轉換后的結果。
map 方法的主要用途是對流中的元素進行轉換或映射。這種轉換可以是類型轉換、數據提取、邏輯處理等。通過 map 方法,可以輕松地實現復雜的數據處理邏輯,同時保持代碼的簡潔和可讀性。
字符串長度轉換
import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class StreamMapExample1 {public static void main(String[] args) {List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");// 使用 map 將字符串列表轉換為對應的長度列表List<Integer> lengths = names.stream().map(String::length).collect(Collectors.toList());System.out.println("字符串長度列表: " + lengths);}}
數字加倍
import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class StreamMapExample2 {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);// 使用 map 將每個數字加倍List<Integer> doubledNumbers = numbers.stream().map(n -> n * 2).collect(Collectors.toList());System.out.println("加倍后的數字列表: " + doubledNumbers);}}
int minCol = recList.stream().sorted(Comparator.comparing(Node::getCol)).collect(Collectors.toList()).get(0).col;int maxWidth = widthList.stream().sorted().collect(Collectors.toList()).get(widthList.size() - 1);int maxHeight = heightList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).get(0);