当前位置: 首页 > news >正文

java8 转对象,Java8转Map,Java8转Llist

1.准备数据

public static List<Persion> getData(){List<Persion> arrayList = new ArrayList<>();arrayList.add(new Persion("李四","20","男"));arrayList.add(new Persion("王麻子","30","男"));arrayList.add(new Persion("wangwu","10","女"));arrayList.add(new Persion("wangwu","10","女"));arrayList.add(null);return arrayList;}

2.List对象转Map

    public static void main(String[] args) {List<Persion> persions = getData();//list对象转 Map<String,String> name 是key,age是value。Map<String, String> stringMap = persions.stream().collect(Collectors.toMap(Persion::getName, Persion::getSex));System.out.println("stringMap:"+stringMap);// 结果:stringMap:{李四=男, 王麻子=男, wangwu=女}}

3.List对象转Map对象并去重

    public static void main(String[] args) {List<Persion> persions = getData();Map<String, Persion> stringMap = persions.stream().collect(Collectors.toMap(Persion::getName, Function.identity(), (key1, key2) -> key2));System.out.println("stringMap:"+stringMap);}
//输出:stringMap:{李四=Persion{name='李四', age='20', sex='男'}, 王麻子=Persion{name='王麻子', age='30', sex='男'}, wangwu=Persion{name='wangwu', age='10', sex='女'}}
//收集对象本身并转换Map<String, Persion> persionMap2 = persions.stream().collect(Collectors.toMap(Persion::getName, v -> new Persion(v.getName(),"","")));

4.List对象转List转Set转List 都类似

    public static void main(String[] args) {List<Persion> persions = getData();List<Persion> persions1 = persions.stream().collect(Collectors.toList());
//        list对象转list对象的属性Set<String> collect2 = persions.stream().map(Persion::getName).collect(Collectors.toSet());System.out.println("stringMap:"+collect2);// 结果:stringMap:stringMap:[李四, 王麻子, wangwu]}

5.多个字段排序 第一个字段降序,第二个字段升序

    public static void main(String[] args) {List<Persion> persions = getData();List<Persion> persions1 = persions.stream().sorted(Comparator.comparing(Persion::getAge).reversed().thenComparing(Persion::getAge)).collect(Collectors.toList());System.out.println("stringMap:"+persions1);}// 结果:stringMap:[Persion{name='王麻子', age='30', sex='男'}, Persion{name='李四', age='20', sex='男'}, Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]

6.根据某个字段分组

  public static void main(String[] args) {List<Persion> persions = getData();Map<String, List<Persion>> collect3 = persions.stream().collect(Collectors.groupingBy(Persion::getAge));System.out.println("stringMap:"+collect3);}
// 结果:stringMap:{30=[Persion{name='王麻子', age='30', sex='男'}], 20=[Persion{name='李四', age='20', sex='男'}], 10=[Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]}

7.去除空元素

    public static void main(String[] args) {List<Persion> persions = getData();boolean removeAll = persions.removeAll(Collections.singleton(null));System.out.println("stringMap:"+removeAll);System.out.println("persions:"+persions);}
//结果:stringMap:true
//persions:[Persion{name='李四', age='20', sex='男'}, Persion{name='王麻子', age='30', sex='男'}, Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]
http://www.lryc.cn/news/348052.html

相关文章:

  • 【Pytest官方文档翻译及学习】2.1 如何调用pytest
  • RabbitMQ的用途
  • R语言软件安装及配置
  • 网络配置的加密存储
  • 你写代码,会关注时间复杂度吗?
  • 【连连国际注册/登录安全分析报告】
  • linux进阶高级配置,你需要知道的有哪些(10)-远程访问
  • 不显示 表格 style=“display: none;“ 这个默认是不显示的
  • Bittensor怎么挖?手把手教你,使用bitget钱包
  • 领略Java内部类的“内部”
  • PHP 提取数组中的特定的值
  • SpringBoot、JAVA中excel、rtf、doc转PDF
  • 生信技能45 - 基于docker容器运行生信软件
  • 算法训练营第63天|LeetCode 84.柱状图中最大的矩形
  • python跟C++选哪个?
  • 速锐得深入解析吉利几何CAN总线数据通信网络的拓扑层级框架技术
  • 数据分析的数据模型
  • SQL注入-通达OA SQL注入漏洞【CVE-2023-4166】原理及检测思路分析
  • 数据结构(七)复杂度渐进表示
  • 3d如何同时贴两个图在模型上?---模大狮模型网
  • 【全开源】Java同城预约月嫂服务上门服务本地服务源码APP+小程序+公众号+H 5
  • 汇聚荣科技:拼多多开店时后期押金可以退吗?
  • 【机器学习与实现】K近邻算法
  • 【Python探索之旅】初识Python
  • MongoDB和AI 赋能行业应用:制造业和汽车行业
  • FileZilla一款免费开源的FTP软件,中文正式版 v3.67.0
  • 44.WEB渗透测试-信息收集-域名、指纹收集(6)
  • 【面经】Linux
  • TriCore:Interrupt 2
  • ollama api只能局域网访问,该怎么破?