Java:有效地将List中的项目放入HashMap

时间:2017-06-29 04:49:13

标签: java hashmap

我在这里有一个清单:

List<QueryStrings> queryStrings

和QueryStrings只是一个简单的类

public class QueryStrings {
    private Integer id;
    private String rel;
    private String impl;
}

我需要将List放入一个HashMap,其中id将是关键,我现在这样做,一次循环List一个项目:

HashMap<Integer, QueryStrings> queryMap = new HashMap<>();
for (QueryStrings element : queryStrings) {
    Integer thisId = Integer.parseInt(element.getId());
    queryMap.put(thisId, element);
}

有更好的方法吗?我不想循环每个项目,这可能吗?

修改

很抱歉我不应该解析整数,所以代码应该是这样的:

HashMap<Integer, QueryStrings> queryMap = new HashMap<>();
for (QueryStrings element : queryStrings) {
    queryMap.put(element.getId(), element);
}

1 个答案:

答案 0 :(得分:5)

如果它已经是int,请不要解析它!

HashMap<Integer, QueryStrings> queryMap = new HashMap<>();
for (QueryStrings element : queryStrings) {
    queryMap.put(element.getId(), element);
}

也就是说,如果它是Java 8,你可以使用更简洁的语法,尽管性能差异很小。

list.stream().collect(Collectors.toMap(QueryStrings::getId, Function.identity()));