2010-01-18 2 views
2

От взгляда на API коллекций Java я вижу, что массивы не рассматриваются как коллекции. Если нет, то какие массивы рассматриваются как?Java-массивы - что они

+4

Массивы рассматриваются как массивы, нет? –

+0

Ссылочные массивы рассматриваются как детали реализации по большей части. –

ответ

10

Массивы «специальные» в Java - они не реализуют никаких интерфейсов, а это значит, что они не могут реализовать интерфейсы коллекции. Они являются коллекциями в терминах «естественного языка», и вы можете использовать расширенный цикл для них, но если вы хотите использовать массив в API коллекции, вам понадобится что-то вроде Arrays.asList, которое обертывает массив с интерфейсом List<T> , (В результате только вид на массиве - изменения в массиве видны через список, и наоборот.)

(Это в отличие от .NET, где T[] реализует IList<T> и т.д.)

+0

Спасибо, Джон, это приятный ответ. Это то, о чем я никогда не думал раньше, но я готовлю презентацию по некоторым темам коллекции. Я хочу быть готовым, если и когда меня спросят о массивах. Спасибо Jon – user253506

+4

Обратите внимание, что вы можете изменять элементы через List, но вы не можете добавлять к нему новые элементы, потому что массив поддержки не может расти. Если вы попробуете, вы получите ошибку времени выполнения. – fredoverflow

Смежные вопросы