如何将List <xxxx>转换为Map <primarykey of =“”xxxx,=“”xxxx =“”>在java中没有迭代列表?

时间:2016-03-02 11:51:28

标签: java list dictionary

List<Student> list = fromStudentTable();
Map<Integer,Student> map = new HashMap<Integer,Student>();
for (Student i : list) {
    map.put(i.getDbid(),i);
}

现在我想隐藏列表来映射没有迭代列表或google guava等任何插件中的任何方法......

2 个答案:

答案 0 :(得分:2)

您可以使用Java 8 Streams:

Map<Integer,Student> map = 
    list.stream()
        .collect(Collectors.toMap(Student::getDbid,
                                  s -> s));

这会将List转换为Map,其中原始List的每个元素都成为Map的一个条目(其中getDbid()是键,Student是值。)

答案 1 :(得分:1)

你可以做同样的事情,

List<Student> list;
Map<TypeofPrimaryKey, Student> map = list.toMap(c-> c.getPrimaryKey(),c->c);