Set set = new HashSet();
Map map = new HashMap();
List list = new ArrayList();
Почему для этих реализаций пишут вот так, а не вот так:
HashSet set = new HashSet();
HashMap map = new HashMap();
ArrayList list = new ArrayList();
Я понимаю что допустим Set
это интерфейс, а ArrayList
реализация/ Используют List list = new ArrayList();
потому что методы
List(a) + методы ArrayList = perfect?
Из-за этого пишут List list = new ArrayList();
? Поясните пожалуйста
Для начала, так пишут как минимум потому, что нельзя сделать объект в виде интерфейса, то есть, вы не можете сделать так
List list = new List ();
Map map = new Map ();
Посмотрите на этот вопрос,где вы также сможете вот эту статью, которая, возможно, он вам вам более полно даст ответ.
В кратце, ваш пример
HashSet set = new HashSet();
HashMap map = new HashMap();
ArrayList list = new ArrayList();
не будет считаться ошибкой, его можно улучшить, потому что в будущем, при работе с большим объемом кода, вам проще обращаться именно к интерфейсу, или так скажем, к более общему объекту/классу/сущности, нежели к ее конкретной реализации.
Например, у вас будет интерфейс Programmer
и классы, которые реализуют его
JavaProgrammer
, JavaScriptProgrammer
, PhpProgrammer
... Вам ведь удобнее в List добавлять Программистов, а не создавать для каждого типа программистов свой лист, ведь так?
В итоге у вас просто будет
List<Programmer> программисты = Arrays.AsList(new JavaProgrammer(),new JavaScriptProgrammer(), new PhpProgrammer() );
вместо отедльных списков для каждого типа программиста.
List
- это интерфейс, все коллекции, которые его реализуют, реализуют все его методы. Поэтому удобно(и принято в ооп) использовать интерфейсы. На пример в качестве аргумента в методе вы можете использовать интерфейс List
public void someMethod(List<String> list) {
}
В этот метод вы можете передавать ArrayList
, LinkedList
и любую другую коллекцию, реализующую List
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Вот такая проблема: показывается список песен - нажимаю на на любую, для воспроизведения, показывает ошибку androidapp
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском