zoukankan      html  css  js  c++  java
  • 关于Java8 Stream的简单实用记录

    Java8 stream的使用
    1、集合对象取某个属性形成集合
    List<String> knows = examPaperList.stream().map(TestExam::getKnowPoint).collect(Collectors.toList());
    2、统计上述String的个数形成Map
    Map<String, Long> mapKnow = knows.stream().collect(groupingBy(p -> p,Collectors.counting()));
    3、集合对象去重累加形成Map
    Map<String, Double> resultFull = examPaperList.stream().collect(Collectors.toMap( TestExam::getKnowPoint, TestExam::getFullScore,(v1,v2)->{ return v1+v2;} ));
    4、Map遍历新方法(遍历上述map):
    resultFull.foreach((k,v)->{Systeam.out.println("key:"+k+"value:"+v)});
    5、把集合中按照某个属性分成多个集合
    List<SubjectToStudent> testSubjectList = wangYueTestMapper.queryTestSubjectOther(projectId,subject);
    testSubjectList.stream().collect(Collectors.groupingBy(SubjectToStudent::getSubject,Collectors.toList()))
    .forEach((subjects,fooListByAge)->{
    groupList.add(fooListByAge);
    });
    6、集合差集
    list=list1.stream().filter(t-> !list2.contains(t)).collect(Collectors.toList());
    7、集合交集
    List<Integer> list=list1.stream().filter(t->list2.contains(t)).collect(Collectors.toList());
    8、统计集合重复元素出现次数,并且去重返回hashmap
    Map<String, Long> map = list.stream().
    collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
    System.out.println(map);
    9、由于hashmap无序,所以在排序放入LinkedHashMap里(key升序)
    Map<String, Long> sortMap = new LinkedHashMap<>();
    map.entrySet().stream().sorted(Map.Entry.comparingByKey()).
    forEachOrdered(e -> sortMap.put(e.getKey(), e.getValue()));
    System.out.println(sortMap);
    10、获取排序后map的key集合
    List<String> keys = new LinkedList<>();
    sortMap.entrySet().stream().forEachOrdered(e -> keys.add(e.getKey()));
    System.out.println(keys);
    11、获取排序后map的value集合
    List<Long> values = new LinkedList<>();
    sortMap.entrySet().stream().forEachOrdered(e -> values.add(e.getValue()));
    System.out.println(values);
    12、集合某属性求和
    Double sum = investorList.stream().mapToDouble(n -> CommonUtils.isNumeric(n.getInvestMoney()) ?
    Double.parseDouble(n.getInvestMoney()) : 0.00).summaryStatistics().getSum();
    13、集合按属性降序输出(升序去掉reversed()方法)
    List<TestListOut> newList = unique.stream().sorted(Comparator.comparing(TestListOut::getPublishTime).reversed())
    .collect(Collectors.toList());

  • 相关阅读:
    CSS3 3D的总结(初学者易懂)
    BAT面试算法精品课直通BAT面试算法精品课购买优惠码-牛客网
    深度学习UFLDL老教程笔记1 稀疏自编码器Ⅱ
    深度学习UFLDL老教程笔记1 稀疏自编码器Ⅰ
    算法分析之函数渐近分析
    调用WebServices报错,请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
    很久之前写的 ,突然想放上去
    ASP.NET Core – Web API 冷知识
    ASP.NET Core C# 反射 & 表达式树 (第三篇)
    ASP.NET Core C# 反射 & 表达式树 (第二篇)
  • 原文地址:https://www.cnblogs.com/pandazhao/p/11739301.html
Copyright © 2011-2022 走看看