Java - Как написать итератор, который перебирает значения HashSet в Map - PullRequest
0 голосов
/ 06 апреля 2019

У меня возникла проблема, когда мне нужно написать итератор для AbstractMap, где значения представлены в HashSet.Это класс, с которым я работаю:

public class SetMap<K, V> extends AbstractMap<K, HashSet<V>> implements Iterable<V>

Мне даны следующие инструкции:

"Реализуйте итератор так, чтобы только значения VПройдены сначала значения в порядке убывания размера объектов HashSet, связанных с ключами, а затем в порядке итератора для HashSet. "

Я в основном не уверен, как подойти к написанию моего пользовательского hasNext() и Next(), учитывая, что я должен проходить HashSet только внутри Карты.

Я новичок в 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

Любая помощь или соответствующие ресурсы будуточень цениться.

...