Cómo comprobar si un array es nula/vacía en Java

Mohammad Irfan 12 octubre 2023
  1. array nulo en Java
  2. El array contiene valores nulos
  3. array vacío en Java
  4. Comprobar que el array es nulo usando la librería común de Apache en Java
  5. Comprobar la nulidad del array usando Java 8
Cómo comprobar si un array es nula/vacía en Java

Este tutorial introduce cómo comprobar si un array es nula o vacía en Java y también enumera algunos códigos de ejemplo para entender el proceso de comprobación de nulos.

array nulo en Java

En Java, un array es un objeto que contiene tipos de datos similares. Sólo puede ser nulo si no está instanciado o apunta a una referencia nula.

En este ejemplo, hemos creado dos arrays. La array arr es declarada pero no instanciada. No contiene ningún dato y se refiere a una referencia nula (valor por defecto) asignada por el compilador. La array arr2 es declarada y asignada explícitamente a null para crear un array nula.

Podemos usar este ejemplo para comprobar si el array es nulo o no.

public class SimpleTesting {
  String[] arr;
  String[] arr2 = null;

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    if (obj.arr == null) {
      System.out.println("The array is null");
    }
    if (obj.arr2 == null) {
      System.out.println("The array2 is null");
    }
  }
}

Resultado:

The array is null
The array2 is null

El array contiene valores nulos

Este es el segundo escenario en el que un array contiene valores nulos. En ese caso, podemos considerar que un array es nula.

Supongamos que tenemos un array de cadenas que puede contener 5 elementos. Como el array no está inicializado, entonces contiene nulos (valor por defecto) asignados por el compilador.

public class SimpleTesting {
  String[] arr = new String[5];

  public static void main(String[] args) {
    boolean containNull = true;
    SimpleTesting obj = new SimpleTesting();
    for (int i = 0; i < obj.arr.length; i++) {
      if (obj.arr[i] != null) {
        containNull = false;
        break;
      }
    }
    if (containNull) {
      System.out.println("Array is null");
    }
  }
}

Resultado:

Array is null

array vacío en Java

un array está vacía sólo cuando contiene cero (0) elementos y tiene una longitud cero. Podemos probarlo usando la propiedad de longitud del objeto del array.

public class SimpleTesting {
  String[] arr = new String[0];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    if (obj.arr.length == 0) {
      System.out.println("The array is Empty");
    }
  }
}

Resultado:

The array is Empty

Comprobar que el array es nulo usando la librería común de Apache en Java

Si estás trabajando con Apache entonces usa la clase ArrayUtils para comprobar si un array está vacío. La clase ArrayUtils proporciona un método isEmpty() que devuelve un valor booleano, ya sea verdadero o falso. Para más información sobre la librería apache visite aquí.

import org.apache.commons.lang3.ArrayUtils;

public class SimpleTesting {
  String[] arr = new String[0];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    Boolean isEmpty = ArrayUtils.isEmpty(obj.arr);
    if (isEmpty) {
      System.out.println("Array is Empty");
    }
  }
}

Resultado:

Array is Empty

Comprobar la nulidad del array usando Java 8

Si trabajas con Java 8 o una versión superior, entonces puedes usar el método stream() de la clase Arrays para llamar al método allMatch() para comprobar si el array contiene valores nulos o no.

Este es el caso cuando el array contiene valores nulos.

import java.util.Arrays;
import java.util.Objects;

public class SimpleTesting {
  String[] arr = new String[10];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    Boolean containNull = Arrays.stream(obj.arr).allMatch(Objects::nonNull);
    if (!containNull) {
      System.out.println("Array is null");
    }
  }
}

Resultado:

Array is null

Artículo relacionado - Java Array