java8 list转map详解编程语言

//按id属性为map的key值 
Map<Integer, User> userMap = list.stream().collect(Collectors.toMap(User::getId, user -> user));

注意:这里属性值必须不能重复,不然会报错

举例:

public class HelloWorld { 
 
    public static void main(String[] args) { 
        Random random = new Random(); 
        List<User> list = new ArrayList<>(); 
        for(int i=1;i<=10;i++) { 
            String group = (random.nextInt(3) + 1) + "组";//1-3组随机 
            User u = new User(i, "用户-" + i, group); 
            list.add(u); 
        } 
 
        //按id属性分组 
        Map<Integer, User> userMap = list.stream().collect(Collectors.toMap(User::getId, user -> user)); 
 
        System.out.println("list-map 后:" + userMap); 
    } 
    private static class User{ 
        Integer id; 
        String name; 
        String group; 
 
        public User(Integer id, String name, String group) { 
            this.id = id; 
            this.name = name; 
            this.group = group; 
        } 
 
        public Integer getId() { 
            return id; 
        } 
 
        public void setId(Integer id) { 
            this.id = id; 
        } 
 
        public String getName() { 
            return name; 
        } 
 
        public void setName(String name) { 
            this.name = name; 
        } 
 
        public String getGroup() { 
            return group; 
        } 
 
        public void setGroup(String group) { 
            this.group = group; 
        } 
 
        @Override 
        public String toString() { 
            return "User{" + 
                    "id=" + id + 
                    ", name='" + name + '/'' + 
                    ", group='" + group + '/'' + 
                    '}'; 
        } 
    } 
 
}

执行结果:

list-map 后:{ 
  1=User{ 
    id=1, 
    name='用户-1', 
    group='1组' 
  }, 
  2=User{ 
    id=2, 
    name='用户-2', 
    group='3组' 
  }, 
  3=User{ 
    id=3, 
    name='用户-3', 
    group='3组' 
  }, 
  4=User{ 
    id=4, 
    name='用户-4', 
    group='3组' 
  }, 
  5=User{ 
    id=5, 
    name='用户-5', 
    group='3组' 
  }, 
  6=User{ 
    id=6, 
    name='用户-6', 
    group='3组' 
  }, 
  7=User{ 
    id=7, 
    name='用户-7', 
    group='1组' 
  }, 
  8=User{ 
    id=8, 
    name='用户-8', 
    group='2组' 
  }, 
  9=User{ 
    id=9, 
    name='用户-9', 
    group='1组' 
  }, 
  10=User{ 
    id=10, 
    name='用户-10', 
    group='1组' 
  } 
}

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/16946.html

(0)
上一篇 2021年7月19日 19:46
下一篇 2021年7月19日 19:46

相关推荐

发表回复

登录后才能评论