感谢您阅读我的帖子。目前我正在做一个学校项目,不幸被困。我有一个类型的哈希映射,我希望能够迭代并放入数组/列表结构。而不是使用Map.Entry我有一个帮助类,使代码不那么棘手(我仍然被欺骗)。
助手班级:
class WordCount {
String word;
Integer count;
WordCount(String word, Integer count) {
this.word = word;
this.count = count;
}
}
我试过这个:
WordCount[] wc = new WordCount[hm.size()];
Iterator it = hm.entrySet().iterator();
int i = 0;
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
wc[i].word = (String) pair.getKey();
wc[i].count = (Integer) pair.getValue();
i++;
}
但是我得到了该代码的错误。我觉得有一个更简单的方法可以解决这个问题......
答案 0 :(得分:3)
如果你想将Hashmap的值转换为数组,我能想到的最简单方法是
ArrayList<Elements> list =
new ArrayList<Elements>(myHashMap.values());
答案 1 :(得分:1)
在java 8中:
List<WordCount> words = hm.entrySet().stream()
.map(e -> new WordCount(e.getKey(), e.getValue()))
.collect(Collectors.toList());
答案 2 :(得分:0)
List<WordCount> wordcounts = new ArrayList<>();
for (String s : hm.keySet()) {
int count = hm.get(s);
WordCount w = new WordCount(s,count);
wordcounts.add(w);
}