Map<Long,String>map=userList.stream().collect(Collectors.toMap(User::getId,User::getName)); 这个获取的就是key为id,value为name的map了。 2. 三个参数的用法 还是沿用上面那个例子,如果这个时候你想获取key是age,value是name的map呢?如果你还是沿用上面的方法,就会出问题了,因为有两个age...
@TestpublicvoidshouldReturnMapWhenCollectDuplicateKey() {Map<String,Student> map =fakeStudent().stream().collect(HashMap::new, (m, v) -> m.put(v.getName(), v),HashMap::putAll);assertEquals("{name5=Student [studentNo=null, name=name5, gender=true, age=2], "+"name4=Student [stud...
stram流式处理中有map方法,先看下其定义,该方法在java.util.stream.Stream类中, 可以看到map()方法接收一个函数式接口参数,入参有一个T,返回一个Stream流,这个流是R泛型。主要有以下几点注意, 入参是一个流中的元素; 出参是一个流,且流中是新元素; 用图表示就是下面的样子,原始流中有四个圆形图案,调用ma...
如果我们要求map的顺序要按照list的执行的话,我们就要转map的时候指定map的具体实现。 Map<String, User> maps3 = list.stream().collect (Collectors.toMap(User::getName,Function.identity(),(k1, k2) -> k1,LinkedHashMap::new)); 输出结果 {pangHu=User{name='pangHu', age=18}, piKaQiu=User{name=...
有时候使用Java8 新特性stream流特性是,需要返回Map集合,实现例子如下: Map<Long,String> personIdNameMap = personList.stream().collect(Collectors.toMap(person ->preson.getId(),person ->preson.getName())); 上述的例子,是把personList(人员集合)提取内容,生成Map<人员id,人员名字>。
java8使⽤stream的collect进⾏list转map注意事项1.创建Person类 package com.xkzhangsan.normal.collectors;public class Person { private Integer id;private String name;private Integer score;public Integer getId() { return id;} public void setId(Integer id) { this.id = id;} public String getName...
//将学生姓名放到Set中,可以实现去重功能Set< String > studentNames = DataFactory.initData().stream() .map(student - > student.getName()) .collect(Collectors.toSet()); 结果不再打印,有兴趣的可以自己试试。 将姓名为“汤霖”的语文成绩置为90 ...
上面的collect()相当于下面这段代码 我们通过下面代码验证上面代码的执行情况 执行结果如下所示 可以看到第三个consumer并没有被执行,在整个collect过程中,只创建了一个容器,然后将流中的数据添加到容器中,并不需要合并容器,将IntStream改成并行流 执行结果如下所示,在collect()过程创建了4个容器,执行了3次...
Mapmap = sdsTests.stream().collect(Collectors.toMap(SdsTest::getName, sdsTest -> sdsTest.getAge() == null ? "0" : sdsTest.getAge())); 使用collect(..) 构建,允许空值 Mapnmap = sdsTests.stream().collect(HashMap::new,(k, v) -> k.put(v.getName(), v.getAge()), HashMap::...
🔊stream10种常用方法 //1、list转map,指定key-value,key,value是对象中的某个属性值. Map<String,String> userMap1 = userList.stream().collect(Collectors.toMap(User::getId,User::getName)); System.out.println("1->"+userMap1); //2、list转map 指定key-value,key为属性值,value是对象本身 ...