J'essaie de définir la capacité initiale d'une arraylist ci-dessous est l'extrait de code p> imbriqué code> à une valeur (selon 10), mais lorsque j'ai essayé d'accéder à la liste interne pour ajouter un élément, il me donne
ArrayoutofboundException < / code>. Veuillez suggérer une bonne solution !!!
3 Réponses :
System.out.println(bucket.get(5).add(5)); You need to understand this line of code, you are trying to access the 5th Element from the Array List "bucket", but have you added any elements in the bucket ArrayList (in you case the element being another Array List)Unless you add your elements, you cannot access them, as they do not exist, hence you see the ArrayOutOfBoundException while you are trying to access 5th element at bucket.get(5)you might want to go through the javadoc of ArrayList https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Y a-t-il un moyen d'utiliser que je peux initialiser la variable "seau" avec "N" ArrayListe vide, comme celui que j'ai essayé dans ce cas ....
code: sortie: p>
Démarrage de Java 8, vous pouvez générer une liste de listes vides à l'aide de flux.generate code>.
sortie h3>
[[], [], [], [], [], [5], [], [], [], []]
Fixer la capacité initiale ne changera rien. Vous ne pouvez pas accéder à un élément de la liste si l'index est invalide, quelle que soit la capacité. Si vous souhaitez accéder à l'élément à l'index 5, la taille B> de la liste doit être d'au moins 6
La capacité initiale n'est pas la taille réelle, juste une limite sur la quantité d'espace pour allouer.
@Jbnizet est là quelque chose de route ???
ArrayList> Seau = flux.Generate (ArrayList :: Nouveau) .Limit (Taille) .Collect (Collectors.Tocollection (ArrayList :: Nouveau)); Code>