Java - liste de tableaux par défaut les valeurs initiales de l'
Lorsque vous créez une liste de tableaux de type Integer en Java, ce sont les valeurs par défaut? J'ai besoin de vérifier si une arraylist est plein et que j'allais obtenir la taille de la matrice puis obtenir la valeur du dernier indice et vérifier si elle était la valeur par défaut.
Est-il un meilleur moyen? Quelle serait la valeur par défaut?
L'espoir qui fait sens. Cheers
int size = a.size();
int last = a.get(size);
if( last == null )
{
return true;
}else{
return false;
}
Edit;
Est-il possible de créer une liste de tableaux avec une taille max que vous ne pouvez pas aller plus à l'arrêter de façon dynamique en expansion?
Lorsque vous créez une liste de tableaux et vous utiliser la taille() serait-ce le retour de la taille réelle ou le nombre d'éléments dans la liste de tableaux?
Quand vous faites cela, pour créer un max taille les valeurs par défaut à null?
public boolean isFull()
{
int size = a.size();
int last = 0;
try{
last = a.get(size-1);
}catch (Exception e){
}
if( last == null )
{
return true;
}else{
return false;
}
}
J'ai actuellement, comment est-il? Cela fait-il un sens aujourd'hui?
- Êtes-vous travailler avec un tableau, un
java.util.ArrayList
, ou quelque chose d'autre? - Une liste de tableaux n'est jamais "plein". Et il n'y a pas de valeur par défaut, la valeur par défaut est la liste est "vide". Votre question n'a aucun sens.
- AaronKurtzhals Oui util arraylists. @Durandal, Ah la droite. J'avais oublié à ce sujet. Serait la Matrice de la bonne mise en œuvre pour cela?
- Reformuler votre question clairement ce problème que vous souhaitez résoudre. Votre exemple de code pièce n'a pas de sens non plus, il va inévitablement jeter un IndexOutOfBoundsException à la 2ème ligne.
- Je l'ai fait, j'espère qu'un sens.
- Vous semblez toujours pensé qu'il y aurait quelque chose dans la liste par défaut. Ce n'est pas le cas, ce que vous n'avez pas ajouté est tout simplement pas là: new ArrayList().size() == 0. La taille est toutes les informations dont vous avez besoin pour vérifier, comme je le comprends votre modifier.
- Oui, cela a du sens. Merci je vais prendre un coup d'oeil avec cette nouvelle info. Merci
Vous devez vous connecter pour publier un commentaire.
Lorsque vous déclarez une liste de tableaux, il est vide. C'est aussi une dynamique conteneur sens qu'il grandira donc pour vous demander s'il est "plein" est plus une contrainte, vous devez ajouter à votre code.
Donc, si vous voulez atteindre un objectif comme vous décrivez.
Comme d'autres l'ont dit, si vous générez une liste avec une taille prédéfinie en tant que tel:
Vous auriez une liste de 10 éléments de toutes les grandes cours d'
null
en valeur. Devriez-vous ajouter d'autres éléments de la liste va encore s'agrandir de plus de 10 éléments, sauf si vous contraindre comme je l'ai fait ci-dessus.Si vous n'avez pas ajouté
Integer
s à la liste de tableaux, puis toutget()
sur la liste sera de retour uneIndexOutOfBoundsException
.La
size()
méthode renvoie le nombre d'éléments dans la liste (c'est à dire combien vous avez ajouté à cela), pas de la capacité actuelle.Lorsque vous créez une liste de tableaux, à l'intérieur de la classe ArrayList, il y a un tableau d'éléments. Ces éléments sont mis à null parce qu'ils ne renvoient pas à une instance d'un objet Integer. Bare à l'esprit, ce n'est pas la même chose qu'un int.
En outre, une liste de tableaux de ne pas obtenir le plein. Il est dynamique, et l'augmentation de la taille quand il en a besoin.
Edit: en réponse à votre travail d'édition sur la définition d'une taille maximale, si vous souhaitez une taille maximale puis je ne suis pas sûr pourquoi vous voulez une liste de tableaux. Mais si vous voulez coller avec une classe ArrayList, je voudrais créer ma propre classe qui est une sous-classe de la liste de tableaux, et de remplacer la méthode add avec une vérification pour s'assurer de la valeur de la taille de la() n'est pas un montant fixe.
size()
est la logique de l'indicateur du contenu, quelle que soit la mise en œuvre. si c'est0
, il n'y a "rien". Les éléments dont vous parlez ne sont pas accessibles, donc n'existe pas.Il n'y a pas une telle chose comme "complète"
ArrayList
. Lesize()
méthode retourne le nombre d'éléments qu'il détient actuellement.null
? Je dirais qu'il ya aucun default puisqu'il n'est pas l'objet.Voulez-vous simplement à la contrainte de la liste pour une taille donnée, ou voulez-vous vérifier si elle est supérieure à une taille donnée?
Vérifier si la liste est plus grande que:
Ce n'est pas possible à la contrainte de la taille d'une liste de tableaux - cependant, vous pouvez créer votre propre sous-classe de la liste de tableaux qui ne fonctionne tout simplement que:
Vous avez seulement besoin de décider ce que la liste doit FAIRE lorsque l'on tente d'ajouter plus d'éléments que la limite de permet aux. Juste ignorer les éléments ou lever une Exception.
Par défaut ArrayList capacité est de 10. Tous ont la valeur null par défaut jusqu'à ce que vous l'ajouter à vos éléments en elle. Mais l'appel de la taille() te donne le nombre d'éléments que vous avez ajoutés. Il l'habitude de donner 10 résultat(par défaut les valeurs null ne sera pas pris en compte). Tour ici, c'est que si vous ajoutez des valeurs null à la liste alors qu'ils sont inclus lors du calcul de la taille(). Exemple, si vous ajoutez 3 valide les Entiers et les 2 valeurs null dans la liste, puis la taille() renvoie 5. Eclipse de débogage va vous aider à trouver cette dynamique d'augmentation de sa capacité.
ArrayLists ont pas de valeurs par défaut. Si vous donner la liste de tableaux un
initialCapacity
lors de l'initialisation, vous êtes juste donnant une indication sur la taille de la sous-matrice—mais vous ne pouvez pas accéder aux valeurs de la liste de tableaux jusqu'à ce que vous ajoutez les articles vous-même.Une Liste de mise en œuvre a un isEmpty() méthode que vous pouvez utiliser.