Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
在 Java 8 中, 集合接口有两个方法来生成流:
-
stream() − 为集合创建串行流。
-
parallelStream() − 为集合创建并行流。
直接上代码
分类
Map<String, List<Person>> mapPerson = list.stream().collect(
Collectors.groupingBy(
person -> person.getName() + ',' + person.getAge()
));
对结果处理
for (Map.Entry<String, List<Person>> mapR : mapPerson.entrySet()) {
System.out.println("Person----key:" + mapR.getKey() + "value:" + mapR.getValue());
}
去重
List<Person> uniqueName = list.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);
对结果进行处理
for (Person person: uniqueName) {
System.out.println(person.toString());
}
本文介绍了Java8中Stream API的使用,包括通过stream()和parallelStream()创建流,以及如何利用Stream进行数据处理,如分类、去重。示例代码展示了如何对Person列表进行按姓名和年龄组合的分类,并打印结果,以及如何获取列表中唯一姓名的Person并展示。Stream API提升了Java处理集合数据的效率和可读性。
8643

被折叠的 条评论
为什么被折叠?



