validar solucion java arrays exception-handling nullpointerexception

solucion - Cómo comprobar si el elemento de matriz es nulo para evitar NullPointerException en Java



java.lang.nullpointerexception solucion (8)

Tengo una matriz parcialmente llena de objetos, y cuando los repito intenté verificar si el objeto seleccionado es null antes de hacer otras cosas con él. Sin embargo, incluso el acto de comprobar si es null parece a través de una NullPointerException . array.length también incluirá todos null elementos null . ¿Cómo se puede verificar elementos null en una matriz? Por ejemplo, en el siguiente código arrojaré un NPE para mí.

Object[][] someArray = new Object[5][]; for (int i=0; i<=someArray.length-1; i++) { if (someArray[i]!=null) { //do something } }


Bueno, primero que todo ese código no compila.

Después de eliminar el punto y coma adicional después de i ++, compila y funciona bien para mí.


El código dado funciona para mí. Observe que someArray [i] siempre es nulo, ya que no ha inicializado la segunda dimensión de la matriz.


El código de ejemplo no arroja un NPE. (tampoco debería haber un '';'' detrás de i ++)


No es asi.

Vea abajo. El programa que publica se ejecuta como se supone.

C:/oreyes/samples/java/arrays>type ArrayNullTest.java public class ArrayNullTest { public static void main( String [] args ) { Object[][] someArray = new Object[5][]; for (int i=0; i<=someArray.length-1; i++) { if (someArray[i]!=null ) { System.out.println("It wasn''t null"); } else { System.out.printf("Element at %d was null /n", i ); } } } } C:/oreyes/samples/java/arrays>javac ArrayNullTest.java C:/oreyes/samples/java/arrays>java ArrayNullTest Element at 0 was null Element at 1 was null Element at 2 was null Element at 3 was null Element at 4 was null C:/oreyes/samples/java/arrays>


Tienes más cosas de las que dijiste. Ejecuté la siguiente prueba ampliada de su ejemplo:

public class test { public static void main(String[] args) { Object[][] someArray = new Object[5][]; someArray[0] = new Object[10]; someArray[1] = null; someArray[2] = new Object[1]; someArray[3] = null; someArray[4] = new Object[5]; for (int i=0; i<=someArray.length-1; i++) { if (someArray[i] != null) { System.out.println("not null"); } else { System.out.println("null"); } } } }

y obtuvo el resultado esperado:

$ /cygdrive/c/Program/ Files/Java/jdk1.6.0_03/bin/java -cp . test not null null not null null not null

¿Está posiblemente intentando verificar la longitud de algunos Array [índice]?


Luchando si el código se está compilando o no, yo diría que crear una matriz de sixe 5 add 2 values ​​e imprimirlos, obtendrás los dos valores y los demás serán nulos. La pregunta es si el tamaño es 5 pero hay 2 objetos en la matriz. Cómo encontrar cuántos objetos están presentes en la matriz


String labels[] = { "MH", null, "AP", "KL", "CH", "MP", "GJ", "OR" }; if(Arrays.toString(labels).indexOf("null") > -1) { System.out.println("Array Element Must not be null"); (or) throw new Exception("Array Element Must not be null"); } ------------------------------------------------------------------------------------------ For two Dimensional array String labels2[][] = {{ "MH", null, "AP", "KL", "CH", "MP", "GJ", "OR" },{ "MH", "FG", "AP", "KL", "CH", "MP", "GJ", "OR" }; if(Arrays.deepToString(labels2).indexOf("null") > -1) { System.out.println("Array Element Must not be null"); (or) throw new Exception("Array Element Must not be null"); } ------------------------------------------------------------------------------------------ same for Object Array String ObjectArray[][] = {{ "MH", null, "AP", "KL", "CH", "MP", "GJ", "OR" },{ "MH", "FG", "AP", "KL", "CH", "MP", "GJ", "OR" }; if(Arrays.deepToString(ObjectArray).indexOf("null") > -1) { System.out.println("Array Element Must not be null"); (or) throw new Exception("Array Element Must not be null"); }

Si desea encontrar un elemento nulo particular, debe usar for loop como se dijo anteriormente.


public static void main(String s[]) { int firstArray[] = {2, 14, 6, 82, 22}; int secondArray[] = {3, 16, 12, 14, 48, 96}; int number = getCommonMinimumNumber(firstArray, secondArray); System.out.println("The number is " + number); } public static int getCommonMinimumNumber(int firstSeries[], int secondSeries[]) { Integer result =0; if ( firstSeries.length !=0 && secondSeries.length !=0 ) { series(firstSeries); series(secondSeries); one : for (int i = 0 ; i < firstSeries.length; i++) { for (int j = 0; j < secondSeries.length; j++) if ( firstSeries[i] ==secondSeries[j]) { result =firstSeries[i]; break one; } else result = -999; } } else if ( firstSeries == Null || secondSeries == null) result =-999; else result = -999; return result; } public static int[] series(int number[]) { int temp; boolean fixed = false; while(fixed == false) { fixed = true; for ( int i =0 ; i < number.length-1; i++) { if ( number[i] > number[i+1]) { temp = number[i+1]; number[i+1] = number[i]; number[i] = temp; fixed = false; } } } /*for ( int i =0 ;i< number.length;i++) System.out.print(number[i]+",");*/ return number; }