NeToster
@NeToster

Почему сортирует HashSet?

Почему до 30(в цикле) значения в рандомном(как нужно) порядке, а после 30, например, если ставлю 100, то они все от 1 до 30 в рядок как отсортировались?
Set<Integer> integerSet = new HashSet<>();
        Random random = new Random(47);
        for (int i = 0; i < 10000; i++) {
            integerSet.add(random.nextInt(30));
        }
        System.out.println(integerSet);

Вывело:
[0,1,2,3,4,5....27,28,29]
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
TheDeadOne
@TheDeadOne
Седой и строгий
Прежде всего, HashSet не гарантирует порядка, поэтому не стоит ожидать от него того, что числа будут выведены в том же порядке, в котором добавлены.
Касательно же происходящего: Хэш целого числа - это само значения этого числа, поэтому по бакетам числа распределятся последовательно и, соответственно, выведены тоже будут последовательно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
ИП Шпак Виктория Сергеевна Санкт-Петербург
от 90 000 до 150 000 руб.
Payneteasy Москва
от 120 000 руб.
МойСклад Москва
от 120 000 до 160 000 руб.
18 авг. 2018, в 09:13
13000 руб./за проект
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект