Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
10 Июл 2023
2 мин
822

Разница между типом List и ArrayList в Java

При создании коллекций в Java часто возникает вопрос — какой тип использовать для объявления: интерфейс List или конкретный класс ArrayList. Например: Оба

При создании коллекций в Java часто возникает вопрос — какой тип использовать для объявления: интерфейс List или конкретный класс ArrayList. Например:

List<String> myList = new ArrayList<String>(); //первый вариант

ArrayList<String> myList = new ArrayList<String>(); //второй вариант

Оба этих варианта корректны, но они имеют некоторые различия в использовании.

Использование интерфейса List

Использование интерфейса List для объявления коллекции предоставляет большую гибкость. В любой момент можно легко заменить используемую реализацию коллекции на другую, например, на LinkedList, не изменяя тип переменной. Это особенно полезно, когда реализация коллекции выбирается в зависимости от некоторых условий или может меняться в процессе работы приложения.

List<String> myList = new LinkedList<String>(); //без проблем заменили ArrayList на LinkedList

Использование класса ArrayList

Использование конкретного класса ArrayList для объявления коллекции ограничивает ее реализацию этим конкретным классом. В данном случае, замена на другую реализацию потребует изменения типа переменной.

ArrayList<String> myList = new LinkedList<String>(); //ошибка компиляции

Но при этом класс ArrayList может содержать дополнительные методы, которых нет в интерфейсе List. И если эти методы необходимы в коде, то выбор падает на второй вариант.

Заключение

В большинстве случаев рекомендуется использовать интерфейс List для объявления коллекции, так как это предоставляет больше гибкости и возможностей для изменения кода в будущем. Однако, если используются специфические методы класса ArrayList, то он выбирается в качестве типа переменной.

Добавить комментарий