167 votes

comment nous vérifions la présence d'un tableau null en Java

Je suis nouveau bie à Java incapable de vérifier null.

pouvez-vous m'éclairer à ce sujet.

J'ai int tableau qui n'a pas d'éléments

J'ai essayé ce code

 int[] k = new int[3];

if(k==null)
{
    System.out.println(k.length);
}
 

mais cette condition reste toujours fausse et nerver affiche "k.length"

258voto

cletus Points 276888

Il existe une différence essentielle entre un tableau null et un tableau vide. Ceci est un test pour null .

 int arr[] = null;
if (arr == null) {
  System.out.println("array is null");
}
 

"Vide" n'a ici aucune signification officielle. Je choisis de définir vide comme ayant 0 éléments:

 arr = new int[0];
if (arr.length == 0) {
  System.out.println("array is empty");
}
 

Une autre définition de "vide" est si tous les éléments sont null :

 Object arr[] = new Object[10];
boolean empty = true;
for (int i=0; i<arr.length; i++) {
  if (arr[i] != null) {
    empty = false;
    break;
  }
}
 

ou

 Object arr[] = new Object[10];
boolean empty = true;
for (Object ob : arr) {
  if (ob != null) {
    empty = false;
    break;
  }
}
 

23voto

Mike Points 1449

Regardez sa longueur:

 int[] i = ...;
if (i.length == 0) { } // no elements in the array
 

Bien qu'il soit plus sûr de vérifier null en même temps:

 if (i == null || i.length == 0) { }
 

4voto

shahkalpesh Points 21553

Je viens de fond .net. Cependant, java / c # sont plus / moins identiques.

Si vous instanciez un type non primitif (tableau dans votre cas), il ne sera pas nul.
par exemple int[] numbers = new int[3];
Dans ce cas, l'espace est alloué et chaque élément a une valeur par défaut de 0.

Ce sera null , si vous ne le faites pas new .
par exemple

 int[] numbers = null; // changed as per @Joachim's suggestion.
if (numbers == null)
{
   System.out.println("yes, it is null. Please new it up");
}
 

3voto

objects Points 6137

Un tableau int est initialisé avec zéro afin qu'il ne contienne jamais de valeur NULL. Seuls les tableaux d'objets contiendront null initialement.

0voto

unwind Points 181987

Un tableau int sans éléments n'est pas nécessairement null . Ce ne sera que null s'il n'a pas encore été attribué. Consultez ce didacticiel pour plus d'informations sur les tableaux Java.

Vous pouvez tester la longueur du tableau:

 void foo(int[] data)
{
  if(data.length == 0)
    return;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X