У меня возникла проблема, когда мне нужно написать итератор для 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
Любая помощь или соответствующие ресурсы будуточень цениться.