初始代码

public Map<String,List<RgwstBean>> getMap(List<RgwstBean> lists){Map<String,List<RgwstBean>> map = new TreeMap<String,List<RgwstBean>>();if(lists==null) {return map;}for(RgwstBean rb :lists) {String newdate = rb.getDatetime();if(map.containsKey(newdate)) {map.get(newdate).add(rb);}else {List<RgwstBean> newlist2 = new ArrayList<RgwstBean>();newlist2.add(rb);map.put(newdate, newlist2);}}return map;}

lambda语法

public Map<String,List<RgwstBean>> getMap(List<RgwstBean> lists){//groupingBy无排序
Map<String,List<RgwstBean>> map = lists.stream().collect(Collectors.groupingBy(RgwstBean::getDatetime));
Map<String,List<RgwstBean>> sortmap = new TreeMap<>();
//Map<String,List<RgwstBean>> sortmap = new TreeMap<>((o1,o2)->o2.compareTo(o1));//倒序map.entrySet().stream().forEach(x->sortmap.put(x.getKey(),x.getValue()));return sortmap;
}
File[] allFiles = new File("D:/xx/20191114").listFiles();
Map<String, List<File>> maps = Arrays.stream(allFiles).collect(Collectors.groupingBy(f -> f.getName().substring(0,f.getName().lastIndexOf("."))));
Map<String, List<File>> maps2 = Arrays.stream(allFiles).collect(Collectors.groupingBy(File::getName));
//list统计某个字段
Map<String, Long> map = ls.stream().collect(Collectors.groupingBy(WarningSynthesize::getDistributionArea, Collectors.counting()));
public Map<Long, String> getIdNameMap(List<Account> accounts) {return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));
}

list排序

List<File> files = maps.get(time);
files.sort(Comparator.comparing(File::getName));//正序
files.sort(Comparator.comparing(File::getName).reversed());//倒序

取map中key最大值的记录

String time = maps.keySet().stream().max(String::compareTo).get();
List<File> files = maps.get(time);

List转Map并去重复key

List<Map> mapLists = mongoTemplate.find(new Query(Criteria.where("datetime").gte(startTime).lte(endTime)),Map.class,"xxx");
Map<String,Object> map = mapLists.stream().collect(Collectors.toMap(a -> a.get("station_id_d").toString(), Function.identity(), (key1, key2) -> key2));

List求和、平均值、最小值、最大值

List<Map> map2Lists;
double sum = map2Lists.stream().mapToDouble(m -> Double.parseDouble(m.get("pre").toString())).sum();
double avg = map2Lists.stream().mapToDouble(m -> Double.parseDouble(m.get("pre").toString())).average().getAsDouble();
double min = map2Lists.stream().mapToDouble(m -> Double.parseDouble(m.get("pre").toString())).min().getAsDouble();
double max = map2Lists.stream().mapToDouble(m -> Double.parseDouble(m.get("pre").toString())).max().getAsDouble();

List转Map<String,Map<String,Long>>

     List<String> objects = new ArrayList<>();for (int i=0;i<2;i++) {objects.add("admin-random"+i+"-2");}for (int i=0;i<2;i++) {objects.add("jiang-apiTest"+i+"-2");}System.out.println("objects = " + new Gson().toJson(objects));Map<String,Map<String,Long>> obj = objects.stream().collect(Collectors.groupingBy(f -> f.split("-")[0],Collectors.toMap(v -> v.split("-")[1], v -> Long.parseLong(v.split("-")[2]))));System.out.println("maps = " + new Gson().toJson(obj));
objects = ["admin-random0-2","admin-random1-2","jiang-apiTest0-2","jiang-apiTest1-2"]
maps = {"admin":{"random0":2,"random1":2},"jiang":{"apiTest0":2,"apiTest1":2}}

根据File文件名时间取时间最大文件

File[] files = new File("xxx").listFiles();
Optional<File> fileOptional = Arrays.stream(files).filter(f -> f.getName().length()!=16).max(Comparator.comparingLong(file -> Long.parseLong(file.getName().substring(0,file.getName().indexOf(".")))));File f = fileOptional.get();

filter

.filter(f -> f.getName().startsWith("SATE"))
过滤掉文件名开头不是SATE的文件,即显示所有文件开头为SATE的文件

map遍历

map.forEach((k, v) -> System.out.println("key:value = " + k + ":" + v));

map转list

map.entrySet().stream().map(e -> new Person(e.getKey(),e.getValue())).collect(Collectors.toList());

list转list

List<Contract> ls = null;
List<String> num_list = ls.stream().map(a -> a.getNum().split("_")[a.getNum().split("_").length-1]).collect(Collectors.toList());

java8特性:list转Map并排序相关推荐

  1. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  2. java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)

    java8新特性:对map集合排序,根据key或者value操作排序(升序.降序) 直接上代码: package com.drew.test; import java.util.List; impor ...

  3. java8新特性-stream对map集合进行过滤的方法

    java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法

  4. Java8 对Map进行排序

    前言: 随着Java 8 的 Stream 之后推出后可以很优雅实现Map的排序. 示例: final Map<String, Integer> wordCounts = new Hash ...

  5. java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...

  6. Java面试准备(四)——Java8特性

    Java8特性 一.Lambda表达式 1. 理解函数式编程思想 2. 函数式接口(Functional Interface) 1)什么是函数式接口 2)常见的函数式接口 1. Supplier接口 ...

  7. Java8特性 stream流常用方法

    Java8特性 stream流常用方法 Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方 ...

  8. “避开”std::map自动排序

    说是 "避开",其实是利用他排序的特性: map<string, string> mymap;mymap.insert(pair<string, string&g ...

  9. java map 自动排序_java Map排序问题

    java 中,Map常见的有HashMap ,TreeMap等等,Map是一个接口,我们不能直接声明一个Map类型的对象,在实际开发 中,比较常用的Map性数据结构是HashMap和TreeMap,它 ...

  10. java8特性快速对list集合的筛选过滤和计算

    java8特性快速对list集合的筛选过滤和计算 一.准备工作 1.创建一个Student对象 package com.shiro.test.java8特性;import java.io.Serial ...

最新文章

  1. Tizen SDK 1.0 Larkspur 安装指南(ubuntu)
  2. mybatis实战教程(mybatis in action),mybatis入门到精通
  3. Go的string/int/int64转化
  4. react滑动切换tab动画效果_[React Native]react-native-scrollable-tab-view(入门篇)
  5. 界面设计方法(2)— 5.功能按钮设计(新增,查询)
  6. Java Web学习总结(16)——JSP的九个内置对象
  7. Spring mvc 拦截器 配置心得
  8. Linux防火墙-iptables
  9. 借书卡程序设计java_java图书馆借书编程求解
  10. wordpress如何让百度快速收录_安顺如何发布信息百度收录在首页
  11. Perl命令行应用介绍
  12. Ubuntu彻底卸载MySQL
  13. 南开100题计算机三级数据库,全国计算机三级数据库技术南开100题.doc
  14. mac大小写切换快捷键,程序猿向
  15. 京东php分销系统开源,2017Ecshop鸿宇小京东V7.2.3二次开发版分销多用户商城系统微信支...
  16. ucla计算机科学博士排名,加州大学洛杉矶分校专业排名一览及最强专业推荐(QS世界大学排名)...
  17. Java游戏开发超级玛丽总结_超级玛丽游戏设计(java)
  18. javascript实现日历功能
  19. 秀动app抢票脚本_程序员硬核quot;Python抢票教程”,帮你抢回家车票
  20. python汇率兑换_美元与人民币汇率 Python

热门文章

  1. 《仙剑奇侠传5》正由北京软星开发中
  2. GEE:提取一个小区域影像的所有波段像素值到csv
  3. 【5GC】开源5G核心网(Open5GS)架构详解
  4. vmware workstation虚拟显卡显存多兼容性好的是10
  5. PR视频导出时出现编译影片出错的提示怎么解决?
  6. MBA-day16 逻辑学 选言推理:或的考法
  7. 三菱modbusRTU通讯实例_国产PLC必学编程-- 汇川H1UModbus通讯例程
  8. halcon算子翻译——get_framegrabber_param
  9. IE中js出现拒绝访问问题
  10. 计算机联锁室内设备原理图,项目一 概述-课题1.ppt