日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stream进行分组统计

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stream进行分组统计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// //groupingBy分組 // Map<Integer, Long> map = houseList.stream().collect(Collectors.groupingBy(House::getBuildId, Collectors.counting())); // //控制臺輸出map // map.forEach((k,v)->{ // System.out.println("k="+k+",v="+v); // }); // // //方式二:使用1.8 stream流 // Map<Object, Integer> sum = houseList.stream().collect(Collectors.groupingBy(House::getBuildId, Collectors.summingInt(p -> ConvertUtil.obj2Int(p.get("count"))))); // sum.forEach((k, v) -> { // newItems.add(ImmutableMap.of("daily", String.valueOf(k), "count", String.valueOf(v))); // });// Map<String,Map<String, Map<String, List<House>>>> result = houseList.stream().collect( // // Collectors.groupingBy(House::getBuildId, // // Collectors.groupingBy(House::getClass, // // Collectors.groupingBy(House::getBuildId))) // // );

Map buildingCount = houseList.stream().collect(Collectors.groupingBy(House::getBuildId));int buildingCountSize = buildingCount.size();

public void testStreamGroupBy() {List<Map<String, Object>> items = Lists.newArrayList();Map<String, Object> map = Maps.newHashMap();map.put("daily", "2018-01-10");map.put("count", 20);items.add(map);map = Maps.newHashMap();map.put("daily", "2018-01-11");map.put("count", 80);items.add(map);map = Maps.newHashMap();map.put("daily", "2018-01-12");map.put("count", 21);items.add(map);map = Maps.newHashMap();map.put("daily", "2018-01-10");map.put("count", 28);items.add(map);final List<Map<String, Object>> newItems = Lists.newArrayList();//方式一: 使用遍歷for (int i = 0; i < result.size(); i++) {Map<String, Object> oldMap = result.get(i);boolean isContain = false;for (int j = 0; j < newList.size(); j++) {Map<String, Object> newMap = newList.get(j);if (newMap.get("daily").equals(oldMap.get("daily"))) {for (String key : oldMap.keySet()) {newMap.put(key, oldMap.get(key));oldMap.put("count", (int) newMap.get("count") + (int) oldMap.get("count"));}isContain = true;break;}}if (!isContain) {newItems .add(oldMap);}}System.out.println("方式一:" + newItems );//方式二:使用1.8 stream流Map<Object, Integer> sum = items.stream().collect(Collectors.groupingBy(m -> m.get("daily"), Collectors.summingInt(p -> ConvertUtil.obj2Int(p.get("count")))));sum.forEach((k, v) -> {newItems.add(ImmutableMap.of("daily", String.valueOf(k), "count", String.valueOf(v)));});System.out.println("方式二:"+newItems);}

java stream分組排序統計求和//java stream多條件分組//其中Student是學生,將學生依次以grade(年級) -> class(班級) -> teacher(任課老師) 分組Map<String,Map<String, Map<String, List<Student>>>> result = students.stream().collect(Collectors.groupingBy(Student::getGrade,Collectors.groupingBy(Student::getClass,Collectors.groupingBy(Student::getTeacher))));//多條件去重students.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getAge() + ";" + o.getName()))), ArrayList::new)).forEach(s -> println(s));//filter過濾students.stream().filter(s -> s.getAge() == 10).forEach(s -> println(s));//sorted排序students.stream().sorted(Comparator.comparing(s-> s.getAge())).forEach(s -> println(s));//1.自然序排序students.stream().sorted();//2.自然序逆序元素,使用Comparator 提供的reverseOrder() 方法students.stream().sorted(Comparator.reverseOrder());//3.按照年齡倒序排序students.stream().sorted(Comparator.comparing(Student::getAge).reversed());//4.不借助stream排序//分數正序排序chineseScores.sort(Comparator.comparing(Integer::intValue));//分數倒序排序chineseScores.sort(Comparator.comparing(Integer::intValue).reversed());//年齡正序排序students.sort(Comparator.comparing(Student::getAge));//年齡倒序排序students.sort(Comparator.comparing(Student::getAge).reversed());//limit方法限制最多返回多少元素students.stream().limit(2).forEach(s -> println(s));//不要前多n個元素,n大于滿足條件的元素個數就返回空的流students.stream().skip(2).forEach(s -> println(s));//最大值 最小值Optional<User> min = students.stream().min(Comparator.comparing(Student::getAge));println(min);Optional<User> max = students.stream().max(Comparator.comparing(Student::getAge));println(max);//轉單集合students.stream().map(Student::getName).forEach(name -> println(name));students.stream().mapToInt(Student::getAge).forEach(age -> println(age));students.stream().mapToDouble(Student::getScoreOfChinese).forEach(scoreOfChinese -> println(scoreOfChinese));students.stream().mapToLong(Student::getAge).forEach(getAge -> println(getAge));//轉單集合求和students.stream().mapToDouble(Student::getScoreOfChinese).sum();//查找匹配指定數據是否存在//allMatch方法與anyMatch差不多,表示所有的元素都滿足才返回true。noneMatch方法表示沒有元素滿足boolean anyMatch = students.stream().anyMatch(s -> s.getAge() == 100);boolean allMatch = students.stream().allMatch(s -> s.getName() == 'hello word');boolean noneMatch = students.stream().noneMatch(s -> s.getStudentId() == '10010');//簡化操作 最大值,最小值,求和Optional<Integer> sum = list.stream().map(User::getAge).reduce(Integer::sum);Optional<Integer> max = list.stream().map(User::getAge).reduce(Integer::max);Optional<Integer> min = list.stream().map(User::getAge).reduce(Integer::min);println(sum);println(max);println(min);//統計IntSummaryStatistics statistics = students.stream().collect(Collectors.summarizingInt(User::getAge));double average = statistics.getAverage();long count = statistics.getCount();int max = statistics.getMax();int min = statistics.getMin();long sum = statistics.getSum();//轉setSet<User> collect = students.stream().collect(Collectors.toSet());Iterator<User> iterator = collect.iterator();while(iterator.hasNext()) {System.out.println(iterator.next().getUserId());}//轉mapMap<String, User> collect = students.stream().collect(Collectors.toMap(Student::getName, s -> s));for (String name : collect.keySet()) {//得到每個key多對用value的值Student s = collect.get(name);println(s);}

總結

以上是生活随笔為你收集整理的stream进行分组统计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美色欧美色 | 亚洲区自拍| a级性生活视频 | 奇米色影视| 理论片毛片 | 日韩不卡中文字幕 | 日韩欧美视频免费在线观看 | 奇米在线视频 | 欧美一二三视频 | 中文字幕精品三级久久久 | 激情小说在线观看 | 国产欧美一区二区三区沐欲 | 精品无码一区二区三区蜜臀 | 国产裸体视频 | 青青草手机视频在线观看 | 精品免费在线观看 | 免费在线一区二区 | www.黄色片网站 | 免费一级片网址 | 欧美国产在线视频 | 国产精品成人3p一区二区三区 | www.国产一区二区三区 | 亚色视频在线观看 | 五月天婷婷激情视频 | 51福利视频| 熟妇熟女乱妇乱女网站 | 国产成人欧美一区二区三区的 | 亚洲乱熟女一区二区三区小说 | 一起操网址 | 91精品亚洲一区 | av在线不卡网站 | 饥渴放荡受np公车奶牛 | 最色网站| 手机看片福利久久 | av啊啊| 啪啪中文字幕 | 色奇米| 久久一区| 色噜噜狠狠一区二区三区牛牛影视 | 中文字幕在线观看视频一区二区 | 午夜精品99 | 亚洲自拍偷拍av | 免费看三级黄色片 | 91丨porny丨九色| 97伊人超碰 | 在线免费观看国产视频 | 欧美 日韩 国产 亚洲 色 | 粉嫩精品久久99综合一区 | 91国产视频在线播放 | 水蜜桃亚洲精品 | 又爽av| 国产三级小视频 | 午夜电影一区二区 | 东方欧美色图 | 精品国产午夜福利在线观看 | 91亚洲视频在线观看 | 2021av在线| 精品在线视频一区二区 | 国产精品福利在线 | 国产欧美日韩视频 | av黄色免费观看 | 国产男男一区二区三区 | 男女做爰猛烈高潮描写 | 天天尻逼 | 丁香激情网 | av影视在线| 亚洲大逼 | 国产美女91呻吟求 | 日本成人精品在线 | 国产精品综合久久久 | 自由成熟xxxx色视频 | 国产一区免费视频 | 国产色视频一区二区三区qq号 | 最近中文字幕第一页 | 在线观看黄网站 | 亚洲va国产va天堂va久久 | 羞羞羞网站 | 国产午夜精品一区二区三区 | 高潮一区二区三区乱码 | 久久国产精品毛片 | 久久精品2019中文字幕 | 日韩a级大片 | 一级片免费网站 | 亚洲福利社| 91视频在线观看免费 | 少妇高潮一区二区三区在线 | 狠狠综合久久av一区二区 | 老熟妇午夜毛片一区二区三区 | 91狠狠操| 成人伊人 | 中文字幕综合 | 五月婷婷六月婷婷 | www.国产| 亚洲免费观看高清在线观看 | 亚洲精品无码久久 | 久久久久99精品成人片试看 | 欧美性生交xxxxxdddd | 18禁一区二区 | 国产偷亚洲偷欧美偷精品 |