Почему до 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);
Прежде всего, HashSet не гарантирует порядка, поэтому не стоит ожидать от него того, что числа будут выведены в том же порядке, в котором добавлены.
Касательно же происходящего: Хэш целого числа - это само значения этого числа, поэтому по бакетам числа распределятся последовательно и, соответственно, выведены тоже будут последовательно.