Я написал код, который работает, но я не уверен. РассмотримДействительный итератор в удаленном списке?
LinkedList<Iterator<Integer>> iterators;
HashMap<Character, TreeSet<Integer>> map;
for (char c : map.keySet()) {
iterators.add(map.get(c).iterator());
map.remove(c);
}
Даже если первоначальный TreeSet был удален, итератор, кажется, работает нормально (т.е. идет в первоначальном упорядочении TreeSet). Я не совсем понимаю, почему он функционирует - кажется, что здесь есть минус-значение, а не передача по ссылке. Тем не менее, очевидно, что если бы я должен был написать
map.get(c).add(6);
TreeSet бы на самом деле добавить 6 на карте (не просто добавить 6 к копии TreeSets в карте), что указывает на прибудете проходит по ссылке. Может кто-то помочь устранить путаницу здесь?
Какое отношение имеет 'Iterator' от' TreeSet' к 'HashMap'? –