Сколько данных может содержать список максимум?
Сколько данных можно добавить в java.util.List на Java максимум?
Есть ли размер ArrayList по умолчанию?
- Как получить размер объекта JavaScript?
- Как узнать размер сеанса в ASP.NET из веб-приложения?
- C # «Параметр недействителен». Создание нового растрового изображения
- Использование GhostScript для получения размера страницы
- Разница между длинными и внутренними типами данных
- Как определить размер формы windows ACTUAL (со всеми неклиентными элементами) при запуске Aero?
- Различные размеры шрифтов строк в том же TextView
- Можете ли вы resize массива C ++ после инициализации?
- Является ли sizeof (некоторый указатель) всегда равным четырем?
- Разница между опциями передачи в aes () и за ее пределами в ggplot2
- Размер пустых пакетов UDP и TCP?
- Почему это происходит с оператором sizeof при сравнении с отрицательным числом?
- Как получить общий объем оперативной памяти устройства?
Это зависит от реализации List
. Поскольку вы индексируете массивы с помощью int
s, ArrayList
не может содержать больше элементов Integer.MAX_VALUE
. LinkedList
не ограничен одним и тем же способом и может содержать любое количество элементов.
Это будет зависеть от реализации, но предел не определяется интерфейсом List
.
Интерфейс, однако, определяет метод size()
, который возвращает int
.
Возвращает количество элементов в этом списке. Если этот список содержит больше элементов
Integer.MAX_VALUE
, возвращаетсяInteger.MAX_VALUE
.
Итак, нет ограничений, но после достижения Integer.MAX_VALUE
поведение списка немного изменится
ArrayList
(который помечен тегами) поддерживается массивом и ограничен размером массива – то есть Integer.MAX_VALUE
Сколько данных можно добавить в java.util.List на Java максимум?
Это очень похоже на теоретический предел для количества ключей (объектов), которые могут храниться в HashMap?
Документация java.util.List
явно не документирует ограничение на максимальное количество элементов. Однако в документации List.toArray
указано, что …
Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента); будут иметь проблемы с реализацией определенных методов,
… так строго говоря, было бы невозможно верно реализовать этот метод, если в списке было более 2 31 -1 = 2147483647 элементов, так как это самый большой возможный массив.
Некоторые утверждают, что документация size()
…
Возвращает количество элементов в этом списке. Если этот список содержит больше элементов
Integer.MAX_VALUE
, возвращаетсяInteger.MAX_VALUE
.
… указывает, что верхнего предела нет, но это мнение приводит к многочисленным несоответствиям. См. Отчет об ошибке .
Есть ли по умолчанию размер списка массивов?
Если вы имеете в виду ArrayList
то я бы сказал, что размер по умолчанию равен 0. Однако емкость по умолчанию (количество элементов, которые вы можете вставить, не заставляя список перераспределять память) равно 10. См. Документацию конструктора по умолчанию ,
Предел размера ArrayList
– Integer.MAX_VALUE
поскольку он поддерживается обычным массивом.
java.util.List
– это интерфейс. Сколько данных может хранить список, зависит от конкретной реализации списка, который вы выбрали для использования.
Как правило, реализация List может содержать любое количество элементов (если вы используете индексированный список, он может быть ограничен Integer.MAX_VALUE
или Long.MAX_VALUE
). Пока вы не исчерпали память, List не станет «полным» или что-то еще.
Достаточно того, что позволит доступная память. Существует ограничение по размеру, кроме кучи.
Интерфейс, однако, определяет метод size (), который возвращает int.
Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
Итак, нет ограничений, но после достижения Integer.MAX_VALUE поведение списка немного изменится
ArrayList (который помечен тегами) поддерживается массивом и ограничен размером массива – то есть Integer.MAX_VALUE
см. код ниже по умолчанию для arraylist, когда вы создаете List l = new ArrayList ();
public class ArrayList extends AbstractList implements List , Cloneable, Serializable, RandomAccess { private static final long serialVersionUID = 8683452581122892189L; private transient int firstIndex; private transient int lastIndex; private transient E[] array; /** * Constructs a new instance of {@code ArrayList} with ten capacity. */ public ArrayList() { this(10); }
Нумерация элементов в массиве java должна начинаться с нуля. Это было, я думаю, мы можем иметь доступ к Integer.MAX_VALUE + 1 элементам.