java - programacion - ¿Cuántos datos puede contener una lista al máximo?
curso android desarrollo de aplicaciones móviles pdf (8)
¿Cuántos datos se pueden agregar en java.util.List en Java al máximo?
Esto es muy similar al límite teórico para el número de claves (objetos) que se pueden almacenar en un HashMap?
La documentación de java.util.List
no documenta explícitamente ningún límite en la cantidad máxima de elementos. La documentación de List.toArray
sin embargo, establece que ...
Devuelve una matriz que contiene todos los elementos de esta lista en la secuencia correcta (del primer al último elemento); tendría problemas para implementar ciertos métodos fielmente, como
... en rigor, no sería posible implementar fielmente este método si la lista tuviera más de 2 31 -1 = 2147483647 elementos, ya que es la matriz más grande posible.
Algunos argumentarán que la documentación de size()
...
Devuelve la cantidad de elementos en esta lista. Si esta lista contiene más de elementos
Integer.MAX_VALUE
, devuelveInteger.MAX_VALUE
.
... indica que no hay límite superior, pero esta vista conduce a numerosas inconsistencias. Vea este informe de error .
¿Hay algún tamaño predeterminado en una lista de arreglos?
Si se refiere a ArrayList
entonces diría que el tamaño predeterminado es 0. Sin embargo, la capacidad predeterminada (la cantidad de elementos que puede insertar, sin forzar a la lista a reasignar la memoria) es 10. Consulte la documentación del constructor predeterminado. .
El límite de tamaño de ArrayList
es Integer.MAX_VALUE
dado que está respaldado por una matriz ordinaria.
¿Cuántos datos se pueden agregar en java.util.List en Java al máximo?
¿Hay algún tamaño predeterminado de una ArrayList?
Dependerá de la implementación, pero el límite no está definido por la interfaz de la List
.
Sin embargo, la interfaz define el método size()
, que devuelve un int
.
Devuelve la cantidad de elementos en esta lista. Si esta lista contiene más de elementos
Integer.MAX_VALUE
, devuelveInteger.MAX_VALUE
.
Por lo tanto, no hay límite, pero después de llegar a Integer.MAX_VALUE
, el comportamiento de la lista cambia un poco
ArrayList
(que está etiquetado) está respaldado por una matriz, y está limitado al tamaño de la matriz, es decir, Integer.MAX_VALUE
La numeración de un elemento en la matriz Java debe comenzar desde cero. Esto fue, creo, que podemos tener acceso a Integer.MAX_VALUE + 1 elementos.
Sin embargo, la interfaz define el método size (), que devuelve un int.
Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
Por lo tanto, no hay límite, pero después de llegar a Integer.MAX_VALUE, el comportamiento de la lista cambia un poco
ArrayList (que está etiquetado) está respaldado por una matriz, y está limitado al tamaño de la matriz, es decir, Integer.MAX_VALUE
Tanto como su memoria disponible lo permita. No hay límite de tamaño, excepto para el montón.
vea el siguiente código de arraylist default es 10 cuando crea List l = new ArrayList ();
public class ArrayList<E> extends AbstractList<E> implements List<E>,
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.util.List
es una interfaz. La cantidad de datos que puede contener una lista depende de la implementación específica de la Lista que elija usar.
En general, una implementación de lista puede contener cualquier cantidad de elementos (si usa una lista indexada, puede estar limitada a Integer.MAX_VALUE
o Long.MAX_VALUE
). Mientras no se quede sin memoria, la Lista no se "llenará" ni nada.
Depende de la implementación de la List
. Dado que indexas matrices con int
s, una ArrayList
no puede contener más de elementos Integer.MAX_VALUE
. Sin embargo, LinkedList
no está limitado de la misma manera y puede contener cualquier cantidad de elementos.