Comment vérifier si un tableau est vide?
J'ai écrit un programme où, si l'ensemble est disons {1, 3, 6, 7, 12}, il sera de retour à son minimum l'écart entre deux nombres. En d'autres termes, il sera le premier à trouver les différences entre 3 et 1, 6 et 3, 7 et 6, et 12 et 7. Après leurs différences sont atteints, il sera de retour le moins de différence, dans notre cas 1, depuis 6-7=1.
Si on nous a donné un tableau d'ensemble de {60}, par exemple, le programme sera de retour 0.
Maintenant, si nous avions un tableau d'ensemble de {}, où rien n'est à l'intérieur, il sera de retour 0. Cependant, je ne peux pas obtenir mon programme de retour de 0! Elle lève une exception. Qu'ai-je manqué? Comment dois-je résoudre ce problème? Voici mon programme pour l'instant:
public static void main(String[] args) {
int[] numberSet = {1, 3, 6, 7, 12};
//int[] numberSet = {};
System.out.println(minGap(numberSet));
}
public static int minGap(int[] numberSet) {
int[] differenceArray = new int[numberSet.length-1];
int smallestNum = 0;
if (numberSet.length < 2) {
return 0;
}
else {
for(int i = 0; i < numberSet.length-1; i++) {
differenceArray[i] = numberSet[i+1] - numberSet[i];
}
Arrays.sort(differenceArray);
smallestNum = differenceArray[0];
return smallestNum;
}
}
Merci d'avance!
OriginalL'auteur user1029481 | 2013-02-10
Vous devez vous connecter pour publier un commentaire.
Votre test:
devrait être fait avant de vous allouer un tableau de longueur dans la déclaration ci-dessous:
d'autre, vous êtes déjà à créer un tableau de taille
-1
, lorsque lenumberSet.length = 0
. C'est assez étrange. Donc, déplacez votreif statement
comme la première déclaration dans votre méthode.OriginalL'auteur Rohit Jain
Pour vérifier matrice est nulle:
Pour vérifier le tableau est vide:
-1
.OriginalL'auteur Achintya Jha
vous pouvez utiliser
yourArray.length
pour trouver le nombre d'éléments dans un tableau.Assurez-vous que yourArray n'est pas null avant de faire
yourArray.length
, sinon vous allez vous retrouver avecNullPointerException
.OriginalL'auteur kosa
Votre problème est que vous n'êtes PAS tester la longueur de la matrice jusqu'à ce qu'il soit trop tard.
Mais je veux juste souligner que la façon de résoudre ce problème est de LIRE la TRACE de LA PILE.
Le message de l'exception clairement dire que vous essayez de créer un tableau avec une longueur de -1, et la trace vais vous dire exactement quelle ligne de votre code est en train de faire cela. Le reste est de la simple logique ... de travail de retour sur le pourquoi de la longueur que vous utilisez est -1.
OriginalL'auteur Stephen C