我有一个哈希映射,我正在尝试将密钥转换为列表。这是代码:
List<ARecord> recs = new ArrayList<ARecord>();
HashMap<String, ARecord> uniqueRecs = new HashMap<String, ARecord>();
for(ARecord records:recs){
if(!uniqueRecs.containsKey(records.getId())){
uniqueRecs.put(records.getId(), records);
}
}
当我尝试
时List<ARecord> finalRecs = new ArrayList<ARecord>(uniqueRecs.keySet());
错误:
构造函数ArrayList(Set)未定义“。
如何将Hashmap密钥转换为List<ARecord>
finalRecs?
答案 0 :(得分:47)
您的uniqueRecs
具有String
类型的密钥。你必须这样做:
List<String> keys = new ArrayList<>(uniqueRecs.keySet());
或
List<ARecord> values = new ArrayList<>(uniqueRecs.values());
答案 1 :(得分:5)
我想要修改现有列表对我有用的是:
list.addAll(map.keySet());
答案 2 :(得分:0)
以下在Java 1.7和1.8下工作:
List<ARecord> finalRecs = new ArrayList<ARecord>();
for (final String key : uniqueRecs.keySet()) {
finalRec.add(new ARecord() {
public String gettld() {
return key;
}
});
}
答案 3 :(得分:0)
我认为“如今”的最佳方法是:
List<Integer> result = map.keySet().stream().collect(Collectors.toList());
这将不发出任何警告,并将正确地获得List<Integer>
通用名称。