Combien de données peut-on ajouter dans Java.util.List dans Java au maximum?
Existe-t-il une taille par défaut d'une liste de tableaux?
Cela dépend de l'implémentation de List
. Puisque vous indexez des tableaux avec int
s, un ArrayList
ne peut pas contenir plus de Integer.MAX_VALUE
éléments. Un LinkedList
n'est cependant pas limité de la même manière et peut contenir n'importe quelle quantité d'éléments.
Cela dépend de l'implémentation, mais la limite n'est pas définie par l'interface List
.
L'interface définit cependant la méthode size()
, qui renvoie un int
.
Renvoie le nombre d'éléments dans cette liste. Si cette liste contient plus de
Integer.MAX_VALUE
éléments, renvoieInteger.MAX_VALUE
.
Donc, pas de limite, mais après avoir atteint Integer.MAX_VALUE
, le comportement de la liste change n pe
ArrayList
(qui est balisé) est soutenu par un tableau et est limité à la taille du tableau - c'est-à-dire Integer.MAX_VALUE
Combien de données peuvent être ajoutées dans Java.util.List dans Java au maximum?
Ceci est très similaire à limite théorique du nombre de clés (objets) pouvant être stockées dans un HashMap?
La documentation de Java.util.List
Ne documente explicitement aucune limite sur le nombre maximal d'éléments. La documentation de List.toArray
indique cependant que ...
Renvoie un tableau contenant tous les éléments de cette liste dans l'ordre approprié (du premier au dernier élément); aurait du mal à appliquer fidèlement certaines méthodes, telles que
... à proprement parler, il ne serait pas possible d'appliquer fidèlement cette méthode si la liste avait plus de 231-1 = 2147483647 éléments car c'est le plus grand tableau possible.
Certains diront que la documentation de size()
...
Renvoie le nombre d'éléments dans cette liste. Si cette liste contient plus de
Integer.MAX_VALUE
Éléments, renvoieInteger.MAX_VALUE
.
... indique qu'il n'y a pas de limite supérieure, mais cette vue conduit à de nombreuses incohérences. Voir ce rapport de bogue .
Existe-t-il une taille par défaut pour une liste de tableaux?
Si vous faites référence à ArrayList
alors je dirais que la taille par défaut est 0. La valeur par défaut capacité cependant (le nombre d'éléments que vous pouvez insérer, sans forcer la liste pour réallouer la mémoire) est 10. Voir la documentation du constructeur par défaut .
La limite de taille de ArrayList
est Integer.MAX_VALUE
Car il est soutenu par un tableau ordinaire.
Java.util.List
est une interface. La quantité de données qu'une liste peut contenir dépend de l'implémentation spécifique de List que vous choisissez d'utiliser.
En règle générale, une implémentation de liste peut contenir un nombre illimité d'éléments (si vous utilisez une liste indexée, elle peut être limitée à Integer.MAX_VALUE
ou Long.MAX_VALUE
). Tant que vous ne manquez pas de mémoire, la liste ne devient pas "pleine" ou quoi que ce soit.
Autant que votre mémoire disponible le permettra. Il n'y a pas de limite de taille sauf pour le tas.
L'interface définit cependant la méthode size (), qui retourne un int.
Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
Donc, pas de limite, mais après avoir atteint Integer.MAX_VALUE, le comportement de la liste change un peu
ArrayList (qui est balisé) est soutenu par un tableau et est limité à la taille du tableau - c'est-à-dire Integer.MAX_VALUE
Numéroter un élément dans le tableau Java devrait commencer à zéro. Je pense que nous pouvons avoir accès à Integer.MAX_VALUE + 1 an items.
voir le code ci-dessous de l'arraylist par défaut c'est 10 quand u crée 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);
}