java8-stream使用参考

在平时开发过程中,目前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));
     }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值