zoukankan      html  css  js  c++  java
  • java 8 stream list 对象 转map

    
    
    List<Person> list = new ArrayList<>();

    1.对象中的属性转map 通过Collectors.toMap

    list.stream().collect(Collectors.toMap(Person::getId,Person::getName));


    2.收集对象本身
    list.stream().collect(Collectors.toMap(Person::getId,list->list));

    list->list 是一个返回本身的lambda表达式,还可以用function接口中的一个默认方法Function.identity(),返回对象本身
    list.stream().collect(Collectors.toMap(Person::getId,Function.identity()));

    3.key重复的情况,key有可能重复,会跑出异常:java.lang.illegalStateException:Duplicate key.这时候就要在toMap
    方法指定当前key冲突时key的选择,这里时第二个key覆盖第一个key
    list.stream().collect(Collectors.toMap(Person::getName,Function.identity(),(key1,key2)->key2));

    4.根据一个字段或者属性分组也可以直接用groupingby方法

    list.list(100).collect(Collectors.groupingBy(Person::getAge));

    通过partitioningBy 进行分组
    list.limit(100).collect(Collectors.partitioningBy(p-P.getAge()<18));

  • 相关阅读:
    Spring Boot笔记一 输出hello
    Java Web之表单重复提交问题
    Java Web之验证码
    Java Web之下载文件
    Java工具之上传文件
    Java Web之上传文件
    Java Web之EL
    Java Bean的规范
    Java Web之JSP
    《FPGA全程进阶---实战演练》第一章之如何学习FPGA
  • 原文地址:https://www.cnblogs.com/lalalazar/p/13632717.html
Copyright © 2011-2022 走看看