java8特性Stream 常见用法
最近在开发中看到同事使用stream 进行集合的数据转换Listobject -ListStringListobject -- MapLong, object感觉十分简单方便上网找了一下资料学习一下Java 8 Stream | 菜鸟教程记录一下我们常见用法.stream()− 为集合创建串行流1、ListObject -- ListString//ListObject -- ListString ListUser resultList new ArrayList(); ListString newList resultList.stream().map(e - e.getName()).collect(Collectors.toList()); // Listmap -- ListString ListString contractIds array.stream().map(m - MapUtils.getString(m, contractId).toString()).collect(Collectors.toList());2、ListUser -- MapLong, UserListUser -- MapLong, User ListUser resultList new ArrayList(); MapLong, User idToUser resultList.stream().collect(Collectors.toMap(User::getId, (user - user)));3、ListMapString, Object -- MapString, Integer countMapListuser -- MapString, Integer countMapListMapString, Object reList stdGoodsTempDao.queryCountByRegcardnm(paramMap); MapString, Integer countMap reList.stream().collect(Collectors.toMap(map - (String) map.get(regcardnm), (map - (Integer) map.get(goodsCount)))); // Listuser -- MapString, Integer countMap MapInteger, String countMap list.stream().collect(Collectors.toMap(e - e.getId(), e - e.getBillNum()));4、.stream().parallel().forEach轻松实现多线程ListStdRegcardTemp listsnew ArrayList(10); lists.stream().parallel().forEach(item - { //具体处理 });5、获取某个字段最大值的那条数据,.stream().max(Comparator.comparing(Student::getRecord)).get();Student student stu.stream().max(Comparator.comparing(Student::getRecord)).get();6、 listobject -- listobject 获取满足条件的返回.filter( 获取type 1的数据ListCycle cycleStream cycleList.stream().filter( cycle - 1.equals(cycle.getType())).collect(Collectors.toList());7、 listobject -- listInteger 获取满足条件的数并且取出指定字段ListInteger projectConfigIds cycleList.stream().filter( cycle - 1.equals(cycle.getType())) .map(Cycle::getId) .collect(Collectors.toList());8、修改object 属性的值,批量修改list 中对象的某个值StdSubcodeBhs StdSubcodeBhs.stream().peek(x - x.setSubmitState(1)).collect(Collectors.toList());9、list 去重List newList (List) list.stream().distinct().collect(Collectors.toList()); // 根据某个字段去重 //根据name进行去重 ListHospItemDO list addItems.stream().collect( Collectors.collectingAndThen(Collectors.toCollection( () - new TreeSet(Comparator.comparing(HospItemDO::getItemcode))), ArrayList::new) );10、字段类型转换 ListInteger -- ListStringListInteger declareTypes new ArrayList(); ListString declareTypes1 declareTypes.stream().map(String::valueOf).collect(Collectors.toList());----以下是参考扩展filter 使用参考这个文章写的很好Stream filter()过滤有效数据_爆米花9958的博客-CSDN博客_stream.filter
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433324.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!