1. 程式人生 > >java 8 stream 對集合的簡單操作

java 8 stream 對集合的簡單操作

Java 8 stream 流操作集合的一些簡單用法:

List<User> userList = userService.getUserList();

一. 將裝有User物件的List集合轉為一個Map集合,key 為 id,值為物件本身;當然,key和值由你的需求來定;e指代當前User物件;

Map<String, User> collect = userList.stream().collect(Collectors.toMap(User::getId, e -> e));

Map<String, String> collect1 = userList.stream().collect(Collectors.toMap(User::getId, e -> e.getName()));

二. 將集合中的物件按照物件的屬性分組成一個Map集合,這裡按照User的id來分組

Map<String, List<User>> stringListMap = userList.stream().collect(Collectors.groupingBy(User::getId));

三. 獲取集合中所有物件的某個屬性值轉為一個集合並去重,這裡以id為例

List<String> userIds = userList.stream().map(User::getId).distinct().collect(Collectors.toList());

四.針對物件的熟悉,過濾求和

Integer collect = list.stream().filter(e->e.getScore() != null).collect(Collectors.summingInt(User::getScore));

List<String> collect1 = list.stream().filter(e->e.getName() != null).map(User::getName).collect(Collectors.toList());