Comment définir la liste de tableaux de taille nulle?
String a []= {null,null,null,null,null};
//add array to arraylist
ArrayList<Object> choice = new ArrayList<Object>(Arrays.asList(a));
System.out.println(choice.size());
Pourquoi la taille de la liste de tableaux choice
est 5 lorsque tous les éléments ont été mis à null
Merci de demander 🙂
OriginalL'auteur Jessy | 2010-04-01
Vous devez vous connecter pour publier un commentaire.
Parce que la liste de tableaux a encore 5 éléments. Ils peuvent être nuls, mais ils sont toujours présents dans la liste.
Vous pouvez vider la liste de tableaux, en appelant
choice.clear();
OriginalL'auteur Frederik Wordenskjold
Je pense que ce qui est déroutant c'est que tu es la pensée de la liste de tableaux comme une ArrayList d'objets, non pas comme une liste de tableaux de références à des objets.
Une liste de tableaux de Objet représente un index-liste accessible de références à des objets.
Il est valable pour une référence à ne pas se référer à un objet réel, mais plutôt être "null".
Par conséquent, vous avez cinq référence "slots", chacune avec une valeur null.
Ce n'est pas le même comme une série de quatre nuls, ou zéro les valeurs null.
Regardez votre initiale et primitive tableau de chaînes de caractères - sa longueur est de cinq, pas de zéro.
Ou encore plus simple, lorsque vous avez une classe avec un champ de type Objet, il faut encore de l'espace, indépendamment de savoir si il est fait référence à quelque chose ou est null. Sinon, vous ne seriez pas en mesure d'instancier la classe et pas besoin de réaffecter les fonds quand vous avez réellement affecté quelque chose sur le terrain.
OriginalL'auteur Uri
De la Javadoc ArrayList:
ArrayLists peut contenir null éléments, de sorte que la taille est de cinq. Gardez à l'esprit que si vous il suffit de déclarer un
new ArrayList(5)
, il aura une capacité initiale de 5, mais lasize()
sera de 0.OriginalL'auteur Justin Ardini
C'est parce que la liste de tableaux n'est pas null, il détient cinq objets (tous les sont nuls), de toute façon une ArrayList n'aura jamais une taille nulle, au moins la taille est de 0 (zéro), et si la liste de tableaux n'est pas initialisé (null) et vous essayez d'accéder à la fonction size() il a jeté une NullPointerException. J'espère que cette information sera utile pour vous, et désolé pour mon mauvais anglais 🙁
OriginalL'auteur gurbieta