public static void main(String[] args) {
HashSet<String> values = new HashSet<>();
values.add("Ivan");
values.add("Petr");
values.add("Alexandr");
values.add("Dmitriy");
System.out.println(values);
}
[Petr, Alexandr, Ivan, Dmitriy] вот что я получил в консоль.
Почему вышли значения таким образом, а не по порядку как в ArrayList например?
Как указано в документации
It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time.
Не гарантируется порядок обхода набора; в частности, не гарантируется, что порядок будет всегда постоянным.
Убедиться можно на примере следующего кода:
public static void main(String[] args) {
HashSet<String> values = new HashSet<>();
values.add("Ivan");
values.add("Petr");
values.add("Alexandr");
values.add("Dmitriy");
System.out.println(values);
values.add("Petr2");
System.out.println(values);
values.add("Ivan2");
System.out.println(values);
}
Если его запустить, можно заметить, что порядок обхода может поменяться, например, после добавления элемента.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости