简单介绍使⽤java1.8新特性stream流将list转map
⼀、
list转map
Map<Long, User> maps = userList.stream().Map(User::getId,Function.identity()));
看来还是使⽤JDK 1.8⽅便⼀些。
⼆、
另外,转换成map的时候,可能出现key⼀样的情况,如果不指定⼀个覆盖规则,上⾯的代码是会报错的。转成map的时候,最好使⽤下⾯的⽅式:
Map<Long, User> maps = userList.stream().Map(User::getId, Function.identity(), (key1, key2) -> key2));
三、
有时候,希望得到的map的值不是对象,⽽是对象的某个属性,那么可以⽤下⾯的⽅式:java stream
Map<Long, String> maps = userList.stream().Map(User::getId, User::getAge, (key1, key2) -> key2));
四、
//List 以ID分组 Map<Integer,List>
Map<Integer, List> groupBy = appleList.stream().upingBy(Apple::getId));
{1=[Apple{id=1, name=‘苹果1’, money=3.25, num=10}, Apple{id=1, name=‘苹果2’, money=1.35, num=20}], 2=[Apple{id=2, name=‘⾹蕉’, money=2.89, num=30}], 3=[Apple{id=3, name=‘荔枝’, money=9.99, num=40}]}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论