1. 程式人生 > 其它 >各種Stream流操作

各種Stream流操作

  • 過濾soList中Object的Name欄位為空的情況
List<Object> soList = Lists.newArrayList();List<Object> list = soList.stream().filter(item -> item.getName() != null).collect(Collectors.toList());

  • 取soList列表根據物件某個欄位 去重
List<Object> soList = Lists.newArrayList()//distinct() 去重 List<Integer> maxDueDayList2 = soList.stream().map(Object::getMaxDueDay).distinct().collect(Collectors.toList());


  • 計算一個List物件中某個欄位總和
int total = list.stream().mapToInt(User::getAge).sum();//上下等同int ageSum = userList.stream().collect(Collectors.summingInt(User::getAge));
  • 計算一個List物件中某個欄位的和、最大值、最小值、平均值、總個數
double doublesum = listUsers.stream().mapToDouble(Users::getAge).sum();//和
int intmax = listUsers.stream().mapToInt(Users::getAge).max().getAsInt();//最大
int intmin = listUsers.stream().mapToInt(Users::getAge).min().getAsInt();//最小
double avg = listUsers.stream().mapToDouble(Users::getAge).average().getAsDouble();//平均