Страницы

Поиск по вопросам

среда, 12 декабря 2018 г.

Сортирует ли примитивы коллекции HashSet()?

import java.util.HashSet; import java.util.Set;
public class Main2 { public static void main(String[] args) { Set intset = new HashSet(); intset.add(1); intset.add(2); intset.add(35); intset.add(42); intset.add(5); intset.add(6); intset.add(7); intset.add(832); intset.add(9); intset.add(1000); intset.add(11); intset.add(12); intset.add(13); intset.add(14); System.out.println("hash set: "+intset);
}
} // Output: // hash set: [1, 2, 5, 6, 7, 9, 11, 12, 13, 14, 35, 42, 832, 1000]


Ответ

Итак, дорогие мои. Отвечаю на собственный вопрос. Все мы ми знаем, или не все, что HashSet это тотже самое что и HashMap, только у HashSet -> values всегда null. Когда мы инициализируем HashSet или HashMap с конструктором по умолчанию, то создается масив на 16 корзин в котором будет содержатся "информация"(!) о hashCode обєкта ключа, которая будет соответствовать індексу корзины масива, где и будет содержатся ссылка на цельный обект(пара(ключ и значение)). Логически получается следующее, что если вы будете в качестве обекта ключа использовать клас Integer со значением в диапазоне от 0 - 15, то hashCode вам вернет само значение обєкта Integer, а это значение и будет индексом корзины в масиве к которому и будет привязана ссылка на целестный об*ект(пара(ключ и значение)).

Комментариев нет:

Отправить комментарий