Урок 32. Коллекция Set – Devcolibri

Урок 32. Коллекция Set

После просмотра видеоверсии урока обязательно изучите текстовый материал. Он дополняет видеоматериал и позволит вам полностью понять тему урока.

HashSet не хранит порядок вставки элементов

Реализация интерфейса SetHashSet не хранит элементы в том же порядке, в каком вы их добавляете.

Рассмотрим эту ситуацию на примере.

public class Main {

    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("Первая строка");
        set.add("Вторая строка");
        set.add("Третья строка");
        set.add("Четвёртая строка");
        set.add("Пятая строка");

        for (String s : set) {
            System.out.println(s);
        }
    }
}

Результат:

Вторая строка
Первая строка
Четвёртая строка
Пятая строка
Третья строка

Видим, что строки вывелись не в том порядке, в котором мы вставляли элементы.

Если вам необходимо сохранять порядок, то используйте реализацию LinkedHashSet:

public class Main {

    public static void main(String[] args) {
        Set<String> set = new LinkedHashSet<>();
        set.add("Первая строка");
        set.add("Вторая строка");
        set.add("Третья строка");
        set.add("Четвёртая строка");
        set.add("Пятая строка");

        for (String s : set) {
            System.out.println(s);
        }
    }
}

Результат:

Первая строка
Вторая строка
Третья строка
Четвёртая строка
Пятая строка

В этом и есть основное отличие этих двух реализаций.

Возникли проблемы при прохождении? Напишите нам в чат поддержки Вконтакте или Facebook. Мы поможем вам решить проблему и вы сможете продолжить обучение.
УВИДЕТЬ ВСЕ Добавить заметку
ВЫ
Добавить ваш комментарий