在平时开发过程中,目前java8的stream操作应该是接触比较多的,记录下其中涉及使用的操作
public static void main(String[] args) {
//list转map1
Map<Long, List<ClassRest>> listMap = rests.stream().collect(Collectors.groupingBy(ClassRest::getClassId));
//list转map2
Map<String, BigDecimal> map =list.stream().collect(Collectors.groupingBy(LimitUse::getWorkNumber));
list转map3
Map<Integer, Apple> appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a, (k1, k2) -> k1));
//list抽取属性组织新list
List<User> users = getUserList();
List<Integer> userIds = users.stream().map(User::getId).collect(Collectors.toList());
//将String类型id转换成long
List<Long> orderIds = orderIdStrs.stream().mapToLong(t -> Long.parseLong(t.trim())).boxed().collect(Collectors.toList());
//求和
double sum_ price = listTest.stream().mapToDouble(Sys_testClass::getSum_price).sum();
//字符串集合拼接
String mergeString = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(","));
//排序
//获取最大的对象
Person person = personList5.stream().max((p1, p2) -> p1.getAge() - p2.getAge()).get();
//对数组内各字符出现次数统计
String[] arr = {"a", "q", "a", "q", "d", "c"};
Stream.of(arr)
.collect(Collectors.toMap(k -> k, k -> 1, Integer::sum))
.forEach((k, v) -> System.out.println(k + " : " + v));
}