В LinkedHashSet есть хедер и там итератор по проходит по связному списку. Но в HashSet нет связного списка. Получается итератор просто по очереди проходит всю хэш таблицу?
HashSet реализован на основе HashMap, соответственно его iterator проходит по ключам этого мапа.
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable {
...
private transient HashMap<E,Object> map;
...
/**
* Returns an iterator over the elements in this set. The elements
* are returned in no particular order.
*
* @return an Iterator over the elements in this set
* @see ConcurrentModificationException
*/
public Iterator<E> iterator() {
return map.keySet().iterator();
}
}
Что касается LinkedHashSet, то он наследует HashSet и не переопределяет iterator(), это означает, что работает все тот же метод. Да и сложно было ждать чего-то другого, iterator и должен перебирать всю коллекцию.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Только начал изучать принципы "ООП"Хотел сделать программу, которая считывает символы, переводит их в смайликовый формат
Проблема возникла со словами после знака присвоения
Программно создаю кнопки, но недавно понадобилось делать отступ вниз от каждой кнопкиЯ так понял надо задать layout_marginbottom