универсальная коллекция уровня noob в java - PullRequest
0 голосов
/ 09 января 2012

Относительно:

List<String> mystring = new ArrayList<String>();

Поправь меня, если я ошибаюсь:

List - это Collection, а также может быть Set, Queue или Map.

String является типом.

mystring - имя этой переменной и будет общей коллекцией String объектов.

ArrayList это? а может и быть?

Если я разговариваю с другим разработчиком, как я могу назвать ArrayList вещь?

Ответы [ 6 ]

2 голосов
/ 09 января 2012

Список - это интерфейс. ArrayList является реализацией List (как и LinkedList).

1 голос
/ 09 января 2012

Если вы говорите с другим разработчиком об этой конкретной строке кода, и ваша тема обсуждения касается упорядоченной коллекции элементов, вам, вероятно, следует назвать ее списком. Таким образом, вы можете получить доступ ко всему поведению List, характеризуемому объектом mystring.

Вы можете взаимодействовать с ним так же, как с любой коллекцией (то есть списком, очередью, сетом). Тогда вы сможете получить доступ только к общему знаменательному поведению среди всех этих типов. Кстати, Collecton или, точнее, List не может быть картой.

1 голос
/ 09 января 2012

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

В этом случае Vector работает почти так же, как ArrayList, но синхронизируется. Если вам нужен параллелизм, вы, вероятно, собираетесь использовать Vector, но он имеет свою цену. Это немного медленнее, чем ArrayList.

Если вы когда-нибудь работали в Java Mobile, вы увидите, что у вас есть только Vector и нет ArrayList.

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

1 голос
/ 09 января 2012
  1. List - это интерфейс. ArrayList - это конкретный класс, который реализует этот интерфейс.
  2. Список не может быть Set, Queue, Map или чем-либо иным, чем List.
  3. String является Object.
  4. List<String> mystring = new ArrayList<String>(); подразумевает, что myString является коллекцией (в данном случае списком) String экземпляров.
1 голос
/ 09 января 2012

ArrayList<String> - конкретный тип переменной mystring (с плохим именем).

1 голос
/ 09 января 2012
  1. ArrayList - это реализация интерфейса List.
  2. ArrayList - это конкретный класс переменной mystring (однако в этом контексте он должен быть незначительным, поскольку mystring имеет тип List)
...