• 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));

  • 相关阅读:
    eclipse lua
    eclipse新建python项Project interpreter not specified
    Laravel Debugbar
    Java中枚举类型简单学习
    SG函数题目
    关于解决博弈论问题的SG函数
    三种典型的博弈论问题
    Java I/O 对象序列化
    Java I/O 文件加锁,压缩
    Java I/O NIO学习
  • 原文地址:https://www.cnblogs.com/lalalazar/p/13632717.html
Copyright © 2020-2023  润新知