java8 list转map

java

//按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组'

}

}

以上是 java8 list转map 的全部内容, 来源链接: utcz.com/z/393937.html

回到顶部