Код: Выделить всё
Set set = new HashSet();
for(Object object : set) {
String element = (String) object;
}
Это имеет смысл в случае arrayList, поскольку элементы сохраняются один за другим. Таким образом, итератор имеет ссылку на первое значение, а затем мы можем использовать hasNext() и next() для перебора всех элементов. А вот в случае с хешсетами и хеш-картами как это работает?
Что ответил чатgpt/gemini:
Когда мы создаем хэш-набор/хэш-карту, назначаются сегменты, которые сопоставляются с хеш-кодами. Допустим, также существуют методы столкновения. Когда мы выполняем итерацию, итератор просматривает все сегменты, извлекая элементы, а затем выполняет проверку на равенство.
Он сравнивает полученный элемент с исходными элементами, которые вы добавили, с помощью методаquals().< /p>
В этом есть смысл, но я не понял эту часть проверки равенства. Почему это необходимо? Я предполагаю, что эти назначенные сегменты являются эксклюзивными для хэш-набора, так почему бы не распечатать все элементы в блоке?
Подробнее здесь: https://stackoverflow.com/questions/785 ... d-hashmaps