使用 Java 8 Streams 的更多示例
分组示例
以下代码展示了如何使用 Collectors.groupingBy 方法对 scpItems 进行分组:
Map<String, List<ScpItemsEntity>> scpItemsHeadersGroupBy = scpItems.stream()
.collect(Collectors.groupingBy(v -> entity.getMainOrgId() + "_" + v.getCustNo()
+ "_" + v.getInvItemNo() + "_" + v.getPlant() + "_" + v.getDeptCode() + "_" + v.getSalesCode()));
排序示例
使用 sorted() 方法对 formNoList 进行排序,使得 FormNo 数字最大的在前方:
formNoList.sort((o1, o2) -> o2.compareTo(o1));
过滤示例
使用 filter() 方法对流中的元素进行过滤:
List<User> adults = list.stream()
.filter(user -> user.getAge() >= 18)
.collect(Collectors.toList());
映射示例
使用 map() 方法将流中的元素映射到另一个对象:
List<String> names = list.stream()
.map(User::getName)
.collect(Collectors.toList());
计数示例
使用 count() 方法计算流中元素的数量:
long count = list.stream().count();
遍历示例
使用 forEach() 方法遍历流中的元素:
list.stream().forEach(user -> System.out.println(user.getName()));
去重示例
使用 distinct() 方法去除流中的重复元素:
List<Integer> distinctAges = list.stream()
.map(User::getAge)
.distinct()
.collect(Collectors.toList());
收集示例
使用 collect(Collectors.toList()) 方法将流中的元素收集到一个列表中:
List<User> userList = list.stream().collect(Collectors.toList());
使用 Spliterator
使用 spliterator() 方法对流进行分割:
Spliterator<User> spliterator = list.spliterator();
spliterator.forEachRemaining(user -> System.out.println(user.getName()));