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

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

Похожие вопросы