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]
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Прежде всего, HashSet не гарантирует порядка, поэтому не стоит ожидать от него того, что числа будут выведены в том же порядке, в котором добавлены.
Касательно же происходящего: Хэш целого числа - это само значения этого числа, поэтому по бакетам числа распределятся последовательно и, соответственно, выведены тоже будут последовательно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
10 мая 2024, в 14:59
2000 руб./за проект
10 мая 2024, в 14:56
2000 руб./за проект
10 мая 2024, в 14:55
2000 руб./за проект