Я пытаюсь изучить концепцию интерфейса Set и класса HashSet в java. Я прочиталИтерирование через экземпляр класса HashSet, ожидание случайного порядка, но результаты всегда одного порядка
при использовании класса HashSet, что нет гарантии последовательности элементов, когда я перебираю.
Я пришел с некоторым кодом и пробежал десять раз, и он всегда повторяется в порядке вставки. Так это из-за удачи?
Set<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(2);
Iterator i1 = set1.iterator();
while (i1.hasNext()){
System.out.println(i1.next());
}
Да, это просто совпадение, 'HashSet' является неупорядоченным и несортированным. если вы хотите, чтобы порядок элементов поддерживался, вы можете использовать 'LinkedHashSet' – Ramanlfc
. Реализация hashcode Integer использует это число (также может). поэтому, если записи хранятся по hashcode, вы увидите цифры в порядке. –