ArrayList[] arr_list = new ArrayList[10];
Что такое arr_lis? Есть ли альтернативная запись для этой строки кода?
Объясните на пальцах, плиз (Начал изучать Java, по этому вопросу перелопатил кучу инфы про ковариантность типов, массивы и Generics в Java, но не до конца понимаю некоторые моменты)
Java
Что создает List[] ?
создашь массив на 10 списков...
>Что такое arr_lis
Название твоей переменной.
>Есть ли альтернативная запись для этой строки кода?
Разумеется, переменную можно обозвать как угодно.
>Объясните на пальцах, плиз
ArrayList - тип переменной
< String > - это дженерик (шаблон класса). Указывает некий тип классу ArrayList, зачем - нужно читать в манах этого ArrayList
[] - это будет массив
arr_list - идентификатор массива (имя переменной)
= new - выделение памяти под массив
ArrayList[10]; - размер выделяемой памяти, вызов конструктора класса.
Название твоей переменной.
>Есть ли альтернативная запись для этой строки кода?
Разумеется, переменную можно обозвать как угодно.
>Объясните на пальцах, плиз
ArrayList - тип переменной
< String > - это дженерик (шаблон класса). Указывает некий тип классу ArrayList, зачем - нужно читать в манах этого ArrayList
[] - это будет массив
arr_list - идентификатор массива (имя переменной)
= new - выделение памяти под массив
ArrayList[10]; - размер выделяемой памяти, вызов конструктора класса.
Павел Рыков
сорри, читайте мой коммент к вопросу
Павел Рыков
получается, что arr_list это массив из состоящий ArrayList < String > элементов?
ArrayList это динамически расширяемый массив. То есть в этом объекте лежит массив, в случае нехватки места будет создаваться массив больше и информация переноситься в него. Дописывать в него можно ArrayList.add в конец массива, за так называемое амортизированное константное время, потому что массив пересоздаётся редко. ArrayList.get возвращает элемент по конкретному индексу за константное время. Поиск ArrayList.indexOf требует линейного времени, потому что для поиска идёт перебор всех элементов. Структура плохо работает с удалением remove и также требует линейного времени, потому что все элементы справа от удалённого объекта должны сдвигаться.
Должно быть:
ArrayList < String > [] arr_list = new ArrayList< >(); В этом случае будет задан стандартный размер массива типа String.
ArrayList < String > [] arr_list = new ArrayList< >(10); Тогда начальный размер массива будет 10. И с последующим увеличением в случае нехватки места.
Должно быть:
ArrayList < String > [] arr_list = new ArrayList< >(); В этом случае будет задан стандартный размер массива типа String.
ArrayList < String > [] arr_list = new ArrayList< >(10); Тогда начальный размер массива будет 10. И с последующим увеличением в случае нехватки места.
Павел Рыков
ниочем, да и "Должно быть: " не работает. У меня создается именно массив, класс объекта [Ljava.util.ArrayList
Похожие вопросы
- В чем разница List и ArrayList?
- List от Set различается лишь тем, что в Set не могут быть повторяющиеся элементы?
- Возможно глупый вопрос, но всё же... Зачем создавать объекты в java?
- Зачем создают приватные переменные, а затем делают их общедоступными через публичные методы?
- Бывали ли у вас такие случаи, тогда unit тесты не приносили пользы, а только создавали лишнюю нагрузку на разработчиков?
- Зачем создают отдельный объект монитора для synchronized блока?
- Как исправить sources.list
- Проверьте, пожалуйста, данные ниже 3 текста на ошибки1).My school list of books is very long.But i don't like practical
- EStringListError in module eTranslator.exe at 0004E673. List indx out of bounds (0)
- Если бог первопричина всего то откуда взялся сам бог? Бог вечен и был всегда? Богу не возможно захотеть создавать мир ?
массив "под" 10 списков
сами списки при этом инициированы не будут...
т. е. вот после такого:
ArrayList< String >[ ] arr_list = new ArrayList< String >[10];
ты не сделаешь
arr_list[0].size();
вернее сказать, попробовать можешь, но получишь нуллпоинтер исключение, потому как под номером 0 лежит null
>ArrayList< String >[ ] arr_list = new ArrayList< String >[10]; -это даже не скомпилируется
Мне интересно, почему ArrayList < String > [] arr_list = new ArrayList < String > [10]; - создать нельзя, т. к. создание массивов дженериков в java запрещено, а вот ArrayList[] arr_list = new ArrayList[10]; при этом компилируется нормально и с ним можно работать как с массивом. Почему?