895669 2025-05-06 16:33:07
Java stream流分组
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Stream {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 2, 1, 4, 3);
// 计算数组的累加和
int sum = numbers.stream().reduce(0, Integer::sum); // 初始值为 0,累加每个元素
System.out.println(sum); // 输出: 15
// 排序
List<Integer> sorted = numbers.stream().sorted().collect(Collectors.toList());
System.out.println(sorted); // 输出: [1, 2, 3, 4, 5]
List<String> names = Arrays.asList("Bob", "Alice", "Charlie", "David", "Anna");
// 根据名字的首字母分组
Map<Character, List<String>> groupedByFirstLetter = names.stream()
.collect(Collectors.groupingBy(name -> name.charAt(0)));
System.out.println(groupedByFirstLetter); // 输出:{A=[Alice, Anna], B=[Bob], C=[Charlie], D=[David]}
}
}