使用personList.stream().collect(Collectors.groupingBy(Person::getId))将List转换为Map。这里,Person::getId是一个方法引用,用于指定分组的依据(即根据id属性进行分组)。 最后,我们遍历并打印了转换后的Map。 运行这段代码,你会得到如下输出: text ID: 1 Person{id='1', name='Alice'} Person{id='1', n...
Map<String,List<String>>map=list.stream().collect(Collectors.toMap(Person::getId,p->{List<String>getNameList=newArrayList<>();getNameList.add(p.getName());returngetNameList;},(List<String>value1,List<String>value2)->{value1.addAll(value2);returnvalue1;}));System.out.println(map); 输...
@Data @AllArgsConstructor static class Person { private String id; private String Name; } 现在将一个List<Person>转变为id与name的Map<String,String>。 如果personList中存在相同id的两个或多个对象,构建Map时会抛出key重复的异常,需要设置一个合并方法,将value合并(也可以是其他处理) List<Person> person...
遇到的一个list转map的场景: list转map在Java8中stream的应用 常用方式 1.利用Collectors.toMap方...
Map<String, String> nmap = sdsTests.stream().collect(HashMap::new,(k, v) -> k.put(v.getName(), v.getAge()), HashMap::putAll); // TODO 下游业务从Map取值要做NPE判断 使用Optional 对值进行包装 Map<String, Optional<String>> opmap = sdsTests.stream().collect(Collectors.toMap(SdsTe...
//将list转换map Map<String,String>map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName)); System.out.println(map); 1. 2. 3. 4. 5. 6. 7. 8. 9. 输出结果为: 注意:用Collectors的toMap方法转换List,一般会遇到两个问题。一个是转换map,key重复问题;另一个是空指针异...
IntStream 1. 普通对象 Stream 可以通过 mapToInt() mapToLong() mapToDouble() 转换成基本类型 Stream 1. 基本类型可以通过 mapToObject() 转换成普通对象 Stream: IntStream 1. Stream操作 stream操作的特点: non-interfering:stream操作不会修改原始的数据。比如文章开始的例子,stream操作不会改变 myList,迭代...
stream().collect(Collectors.toMap(SdsTest::getName, s -> { List<String> ages = new ArrayList<>(); ages.add(s.getAge()); return ages; }, (List<String> v1, List<String> v2) -> { v1.addAll(v2); return v1; })); System.out.println("map->"+map.toString()); --- 输出: ...
List 1 的数据到大于 List 2 中的数据。 返回List1 的 map,如果 List 中的数据在 List 2 中存在的话,Map 的值是 True,如果不存在的话,是 False。 List1 和 List2 中的元素都是整数。 Stream 我们使用了 Java 提供的 Stream,当然你也可以用 For 循环。
System.out.println("b:" +collect);//过滤collect = list.stream().filter(e -> e.equals("2")).collect(Collectors.toList()); System.out.println("c:" +collect);//list 转 mapMap<String, String> map = list.stream().collect(Collectors.toMap(e -> e + ":", e ->e)); ...