java8-stream使用参考

在平时开发过程中,目前java8的stream操作应该是接触比较多的,记录下其中涉及使用的操作

public static void main(String[] args) {
         //list转map1
         Map> listMap = rests.stream().collect(Collectors.groupingBy(ClassRest::getClassId));
         //list转map2
         Map map =list.stream().collect(Collectors.groupingBy(LimitUse::getWorkNumber));
         list转map3
         Map appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a, (k1, k2) -> k1));

         //list抽取属性组织新list
         List users = getUserList();

         List userIds = users.stream().map(User::getId).collect(Collectors.toList());

         //将String类型id转换成long
         List 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));
     }

你可能感兴趣的:(01-java,api,java)