Java-如何编写遍历Map中HashSet值的迭代器

时间:2019-04-06 01:39:53

标签: java dictionary iterator set

给我一​​个问题,我必须为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

任何帮助或相关资源,将不胜感激。

1 个答案:

答案 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));
}

}