jdk8中List、map、set间转换(含转Map分组),以及List去重
一、List、Map、Set间转换(含转Map分组)
// List<Org> 转成 Set<Org>集合
Set<Org> orgSet = orgList.stream().collect(Collectors.toSet());
// List<String> 转成 Set<String>集合
Set<String> orgIdSet = orgList.stream().map(Org::getOrgId).collect(Collectors.toSet());/*** List -> Map* 需要注意的是:* (1)toMap 如果集合对象有重复的key,会报错Duplicate key ....(比如user1,user2的id都为1)。* 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2*/
Map<String, Org> orgMap = orgList.stream().collect(Collectors.toMap(Org::getOrgId, a -> a,(k1,k2)->k1));//两个属性组合作为key
Map<String, Org> orgMap = organinfo.stream().collect(Collectors.toMap(k->k.getOrgId()+k.getOrgName(), k.getOrgName()));// List转成Map分组,并根据student中的name属性进行分组
Map<String,List<Org>> group = orgList.stream().collect(Collectors.groupingBy(Student::getName));
二、List去重
// List<Org> orgList = new ArrayList<>();
// Org实体内可自定义的equals和hash算法
List<Org> list = orgList.stream().distinct().collect(Collectors.toList());Set<Org> orgSet = orgList.stream().collect(Collectors.toSet());
三、最值
List<Org> orgList = new ArrayList<>();
orgList.add(new Org("1","张三"));
orgList.add(new Org("2","李四"));
orgList.add(new Org("0","李四"));
orgList.add(new Org("20","李四"));//最小: 0
String minVal = orgList.stream().map(Org::getOrgId).min(String::compareTo).get();
//最大: 20
String maxval = orgList.stream().map(Org::getOrgId).max(String::compareTo).get();
jdk8中List、map、set间转换(含转Map分组),以及List去重相关推荐
- Java中字符串和数字间转换
String字符串转化为数字 Integer.parseInt(String s) : Integer.valueOf(String s); 例子: String s= "123" ...
- SE API第10/11天:集合 ——>ArrayListals、Iterator遍历迭代器、增强for、List集→subList、集合间转换asList、排序sort | Map相关
一.Java 集合框架 0.介绍: (0)什么是集合 -集合与数组一样,可以保存一组元素,并且提供了操作元素的相关方法,使用更方便. (1)集合框架被设计成要满足以下几个目标: 该框架必须是高性能的. ...
- 转换实体类_利用Java反射机制进行Map和JavaBean间转换
Java中利用反射进行Map和JavaBean间转换 在日常工作中,有时候我们可能会遇到以下这样的情况发生. 例如: (1)后端接受一个参数Map param(可能是前端form维护的一个对象...) ...
- jdk8中Map集合中的compute系列方法的使用
1.compute 现对List 中的map集合中的某个key进行批量的数据处理: package com.company.concurrent.jdk8;import java.util.Array ...
- JS 中 Map 与 JSON 转换
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. JSON数据 转 字符串 JSON.stringify(jsondata) 2. 字符串 转 ...
- JDK8中Lambda深入理解和Stream实践
1 lambda描述 Lambda 表达式是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符.返回值声明和名字. 它可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格,使 Java ...
- JDK7与JDK8中HashMap的实现
JDK7中的HashMap HashMap底层维护一个数组,数组中的每一项都是一个Entry 1 transient Entry<K,V>[] table; 我们向 HashMap 中所放 ...
- Java集合:JDK7与JDK8中HashMap的实现
JDK7中的HashMap HashMap底层维护一个数组,数组中的每一项都是一个Entry transient Entry<K,V>[] table; 我们向 HashMap 中所放置的 ...
- C++ map 使用详解(含C++20新特性)
目录 访问元素 迭代器 容量 修改操作 查找 std::swap(std::map) std::erase_if (std::map) 简介 map 是一个关联容器,它提供一对一的数据处理能力(其中第 ...
最新文章
- Spring之事务管理配置
- Redis专题-底层数据结构与使用场景
- 解决修改/etc/sudoers文件后:报 语法错误 near line 23
- python识别图像数字诊断模块_opencv+python 机读卡识别
- Spring Cloud Alibaba发布第二个版本,Spring 发来贺电 1
- hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)...
- 1086 就不告诉你 (15 分)—PAT (Basic Level) Practice (中文)
- Wise UNpacker 0.91A [with Delphi Source]
- 总结篇——mysql中使用sql语句操作表字段
- paip.终端服务器超出了最大允许连接数的解决
- Luogu5889 跳树
- 制造业英文简写中文对照之二(轉自ITPUB)
- 正弦波形多波形叠加的音频文件生成工具v1.0使用说明
- vrp java_HCIA-VRP基础及操作
- python检索论文_一种基于Python的音乐检索方法的研究
- 我最近在看什么——《蛤蟆先生去看心理医生》
- wps 符号操作(仅符号)
- 企业微信怎么群发消息到群?企业微信客户群群发有什么限制?
- 华东师范学院计算机模拟试卷,华东师范大学计算机组成原理模拟卷
- xampp mysql 端口被占用_如何解决XAMPP安装后提示80端口被占用