От взгляда на API коллекций Java я вижу, что массивы не рассматриваются как коллекции. Если нет, то какие массивы рассматриваются как?Java-массивы - что они
ответ
Массивы «специальные» в Java - они не реализуют никаких интерфейсов, а это значит, что они не могут реализовать интерфейсы коллекции. Они являются коллекциями в терминах «естественного языка», и вы можете использовать расширенный цикл для них, но если вы хотите использовать массив в API коллекции, вам понадобится что-то вроде Arrays.asList
, которое обертывает массив с интерфейсом List<T>
, (В результате только вид на массиве - изменения в массиве видны через список, и наоборот.)
(Это в отличие от .NET, где T[]
реализует IList<T>
и т.д.)
Спасибо, Джон, это приятный ответ. Это то, о чем я никогда не думал раньше, но я готовлю презентацию по некоторым темам коллекции. Я хочу быть готовым, если и когда меня спросят о массивах. Спасибо Jon – user253506
Обратите внимание, что вы можете изменять элементы через List, но вы не можете добавлять к нему новые элементы, потому что массив поддержки не может расти. Если вы попробуете, вы получите ошибку времени выполнения. – fredoverflow
- 1. Редкие векторы, что они?
- 2. Программные каналы, что они?
- 3. Что такое «дополнения» Heroku? Что они делают_?
- 4. Что такое TestExecutionListeners, и что они делают?
- 5. Пустые рабочие темы, что они?
- 6. gcc switch - что они делают?
- 7. Крючки ... именно то, что они
- 8. Терминология CSS: что они называются?
- 9. BASENAME причуды - то, что они
- 10. Java-бобы, аннотации: что они делают? Как они мне помогают?
- 11. Что это за контроль? Они не UITableView, они?
- 12. Службы Windows 2012 показывают, что они деградировали
- 13. Как Мокка знает, что они асинхронны?
- 14. Скелетная структура Медиа-запросы - что они означают?
- 15. Что это за сертификаты и откуда они?
- 16. Что они подразумевают под «отсутствием требуемого libarary»?
- 17. Сообщения сервера разработки Django - что они означают?
- 18. AudioRecord: журналы «Overrun user» - что они означают?
- 19. Ошибки наложения на Android - что они означают?
- 20. Параметры конструктора GridViewRow, что они точно?
- 21. Правило перезаписи - что именно они означают
- 22. Элементы кластеризации ELKI, что они означают?
- 23. Что они используют для ленивой загрузки?
- 24. Генераторы Javascript ES6. Что именно они сейчас?
- 25. '__exidx_start' и '__exidx_end', что они делают?
- 26. Что они означают в этом JavaScript-коде?
- 27. Варианты строк в python - что они означают?
- 28. Филиалы и что они представляют в ServiceStack
- 29. Типы классов java - что они означают?
- 30. SID и HSID cookies: что они используют?
Массивы рассматриваются как массивы, нет? –
Ссылочные массивы рассматриваются как детали реализации по большей части. –