У меня есть сомнения относительно ArrayList и List. В этом случае мы должны использовать ArraryList, например:
ArrayList obj = new ArrayList();
И в этом случае мы должны использовать интерфейс списка.
List obj = new ArrayList();
В чем разница между ними?
Если вам нужно вызвать метод, специфичный для реализации, используйте реализацию.
Когда вы пишете:
List obj = new ... //ArrayList() or LinkedList()
компилятор знает, что obj - это List
. Следовательно, вы не можете использовать методы, специфичные для одной реализации.
Например, если вам нужно получить доступ к последнему элементу LinkedList
, вам необходимо объявить его следующим образом:
LinkedList = obj = new LinkedList();
Теперь obj
является LinkedList
. Следовательно, вы можете использовать obj.last()
.
Если вы хотите использовать методы, специфичные для ArrayList, вы хотите получить первый случай, иначе лучше использовать второй случай. Во втором случае вам не нужно менять столько, если вы хотите переключиться на другую реализацию List.
ArrayList<Object> obj = new ArrayList<>();
или List <Object> obj = new List <> (); `