一、List<Object>转Map<String,String> 二、List<Object>转Map<String,Object>(返回对象本身) 三、List<Object1>转Map<String,Object2>(返回另一个对象) 四、List<Object>转Map<String,List<Object>>(分组)【以1个字段分/以多个字段分】 基础代码: 首先创建两个实体类 @DatapublicclassStudent{//学号private...
list.add(newStudent("1003", "小D"));//将list转map 【key为1个属性,value为1个属性】Map<String, String> map =list.stream().collect(Collectors.toMap( Student::getNo, Student::getName, (key1 , key2)-> key1//(map的键重复不会报错,下面已经处理)));//将list转map 【key为多个属性,valu...
public static void main(String[] args) { List<Map<String, List<String>>> list = new ArrayList<>(); // 创建测试数据 Map<String, List<String>> map1 = new HashMap<>(); map1.put("key1", Arrays.asList("value1", "value2", "value3")); ...
public static void main(String[] args) throws Exception { List<String> names = Lists.newArrayList("Answer", "AnswerAIL", "AI"); Map<String, Integer> map = names.stream().collect(Collectors.toMap(v -> v, v -> 1)); System.out.println(map); } } 1. 2. 3. 4. 5. 6. 7. ...
原因是声明List集合时有的值为空(如图),但是HashMap中k,v是可以存null值的。 解决方法:在转换流中加上判空,即便value为空,依旧输出。(与上面方法三相同) 代码语言:javascript 复制 Map<String,List<String>>map=list.stream().collect(Collectors.toMap(Person::getId,p->{List<String>getNameList=newArrayList...
List<Map<String, String>> listMap = new ArrayList<>(); Map<String, String> map1 = new HashMap<>(); Map<String, String> map2 = new HashMap<>(); Map<String, String> map3 = new HashMap<>(); listMap.add(map1); listMap.add(map2); listMap.add(map3); map1.put("name","...
Stream<String>stream=stringList.stream(); 1. 在这个示例中,我们使用stream方法将stringList转换为一个名为stream的流。 步骤三:将流转换为map 接下来,我们需要使用流的collect方法,结合Collectors的toMap方法将流转换为map。toMap方法需要两个参数,一个用于指定键,一个用于指定值。我们可以使用lambda表达式来定义这些...
@Testpublicvoidtest02(){List<String>names=Arrays.asList("tom","jack","jerry","tom");Map<String,Integer>collect=names.stream().collect(toMap(Function.identity(),String::length));System.out.println(collect)}/* 因为List包含两个tom,转成Map会有两个同样的Key,这个是不允许的。所以会报错: ...
2、List转Map id为key,apple对象为value,可以这么做: /** * List -> Map * 需要注意的是: * toMap 如果集合对象有重复的key,会报错Duplicate key ... * apple1,apple12的id都为1。 * 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 */ Map<Integer, Apple> appleMap = ...
1 演示代码使用Idea开发工具,创建实例工程和实例类UserInfo,jdk选择java8版本,下图为演示实体类。 2 情形一:List转Map。List的元素为对象,Map的key为对象的某个属性,Map的value为整个对象。在此我们把userName作为Map的key,使用lambda表达式:3 在开发时,java8除了以上的写法,也可以使用箭头函数实现,参考下图...