给我一个问题,我必须为AbstractMap编写一个迭代器,其中值以HashSet表示。这是我正在使用的课程:
public class SetMap<K, V> extends AbstractMap<K, HashSet<V>> implements Iterable<V>
我得到的指示如下:
“实施迭代器,以便仅遍历值V。首先以与键关联的HashSet对象的大小的降序遍历值,然后以HashSet的迭代器次序遍历。”
考虑到我只应该遍历Map中的HashSet,我基本上不确定如何编写自定义hasNext()
和Next()
。
我是Java的新手,因此遍历多维映射,尤其是将集合作为某些值的遍历,对我来说非常混乱。
我的主要功能可以做什么的示例-
SetMap<String, Integer> map = new SetMap<>();
map.addValue("B", 4);
map.addValue("A", 0);
map.addValue("A", 1);
map.addValue("B", 3);
map.addValue("A", 2);
for (Integer value : map) {
System.out.println(value);
}
}
-是产生这样的东西:
0
1
2
3
4
任何帮助或相关资源,将不胜感激。
答案 0 :(得分:0)
使用HashSet的get(String s)
SetMap<String, Integer> map = new SetMap<>();
map.addValue("B", 4);
map.addValue("A", 0);
map.addValue("A", 1);
map.addValue("B", 3);
map.addValue("A", 2);
for (String s : map) {
System.out.println(map.get(value));
}
}