我在这里有一个清单:
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);
}
答案 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()));