Массивы чрезвычайно простые, основные компоненты языка Java, без каких-либо приятных функций, предоставляемых картой коллекций: нет contains
, фиксированный размер, неизбежно изменяемый и т. Д.
Arrays.asList
возвращает специальный List
реализацию, которая является только оберткой массива, переданного ему: он поддерживает set
, contains
, итерацию, и все, что, хотя он не поддерживает add
или remove
. Он может быть передан многим коммунальным предприятиям, которые ожидают Collection
, однако, поскольку Arrays.asList
делает возвращает List
, который всегда является Collection
.
Заявление
List<String> A = new ArrayList<String>(Arrays.asList(somestringarray));
, во-первых, упаковка ваш массив как List
, но ограниченное применение, которое не поддерживает изменение размера. (Кроме того, List
отражает изменения, внесенные somestringarray
и изменения в List
возвращенного Arrays.asList
фактически изменить массив подкладочный а.) Затем, копирует, что в ArrayList
, которая является полнофункциональным List
реализации с поддержкой изменение размера и т. д., и поскольку он делает копию, она теперь не зависит от исходного массива.
ArrayList не реализует интерфейс массива , поэтому вы не можете присвоить ArrayList эталонного значения для ссылки на массив переменного. –
Кроме того, в Java нет интерфейса 'Array'. «ArrayList» - это своего рода «Список». 'Arrays.asList()' * возвращает * коллекцию. –