Programa Java para eliminar nulos de un contenedor de lista

List es una colección ordenada de objetos que permite almacenar valores duplicados o valores nulos , en el orden de inserción. Por lo tanto, es muy importante eliminar los valores nulos en muchos escenarios.

Ejemplos:

Input:  [Geeks, null, forGeeks, null, A computer portal]
Output: [Geeks, forGeeks, A computer portal]

Input:  [1, null, 2, 3, null, 4]
Output: [1, 2, 3, 4]

A continuación se muestran los métodos para eliminar valores nulos de una lista en Java:

  1. El uso de List.remove() La interfaz List proporciona un método predefinido remove(element) que se usa para eliminar una única ocurrencia del elemento pasado, de la Lista, si se encuentra.

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Llame repetidamente a remove(null) en la lista, hasta que se eliminen todos los valores nulos.
    3. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    // Java Program to remove nulls
    // from a List using List.remove()
      
    import java.util.*;
      
    class GFG {
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using List.remove()
            // Repeatedly call remove() till all null are removed
            while (list.remove(null)) {
            }
      
            // Print the list
            System.out.println("Modified List: " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List: [Geeks, forGeeks, A computer portal]
    
  2. Uso de List.removeAll() : la interfaz List proporciona otro método predefinido removeAll(Collection) que se utiliza para eliminar todas las apariciones de los elementos de la Colección pasados, de la Lista, si se encuentran.

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Cree una colección con solo nulo como elemento usando Collections.singletonList (null)
    3. Llame a removeAll(Collection) en la lista una vez.
    4. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    // Java Program to remove nulls
    // from a List using List.removeAll()
      
    import java.util.*;
      
    class GFG {
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using List.removeAll()
            // passing a collection with single element "null"
            list.removeAll(Collections.singletonList(null));
      
            // Print the list
            System.out.println("Modified List: " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List: [Geeks, forGeeks, A computer portal]
    
  3. Uso de iterador : Iterator es una interfaz que pertenece al marco de la colección. Permite al usuario recorrer la colección, acceder al elemento de datos y eliminar los elementos de datos de la colección.

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Crear un iterador de la lista
    3. Recorrer cada elemento de la Lista con el Iterador creado
    4. Comprueba, para cada elemento, si es nulo. Si se encuentra nulo, llame a IteratorElement.remove() en ese elemento.
    5. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    Programa:

    // Java Program to remove nulls
    // from a List using iterator
      
    import java.util.*;
      
    class GFG {
      
        // Generic function to remove Null Using Iterator
        public static <T> List<T> removeNullUsingIterator(List<T> list)
        {
      
            // Create an iterator from the list
            Iterator<T> itr = list.iterator();
      
            // Find and remove all null
            while (itr.hasNext()) {
                if (itr.next() == null)
                    itr.remove(); // remove nulls
            }
      
            // Return the null
            return list;
        }
      
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using iterator
            list = removeNullUsingIterator(list);
      
            // Print the list
            System.out.println("Modified List:  " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List:  [Geeks, forGeeks, A computer portal]
    
  4. Uso de Guava Iterables removeIf() : la clase Guava Iterables proporciona Iterables.removeIf(Iterable, Predicate) que elimina cada elemento de un Iterable específico (o Colecciones que implementan Iterable) que satisface el predicado proporcionado .

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Obtenga la condición de predicado Predicates.isNull() para pasar el argumento de removeIf()
    3. Llame a Iterables.removeIf(List, Predicate) donde List es la lista original con valores nulos y Predicate es la instancia de Predicates.isNull().
    4. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    // Java Program to remove nulls
    // from a List using Guava Iterables
      
    import com.google.common.base.Predicates;
    import com.google.common.collect.Iterables;
    import java.util.*;
      
    class GFG {
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using Guava Iterables
            // using Predicate condition isNull()
            Iterables.removeIf(list, Predicates.isNull());
      
            // Print the list
            System.out.println("Modified List: " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List: [Geeks, forGeeks, A computer portal]
    
  5. Uso del filtro de Apache Commons Collections() : la clase Apache Commons Collections CollectionUtils proporciona un filtro (iterable, predicado) que elimina todos los elementos de un iterable especificado que no satisface el predicado proporcionado .

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Obtenga la condición Predicate PredicateUtils.notNullPredicate() para pasar el argumento de filter() de modo que los elementos que pasan la condición NotNull permanezcan en la lista, mientras que todos los demás se filtran.
    3. Llame a CollectionUtils.filter(list, PredicateUtils.notNullPredicate()) donde List es la lista original con valores nulos y Predicate es la instancia de PredicateUtils.notNullPredicate().
    4. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    Programa:

    // Java Program to remove nulls
    // from a List using Apache Common COllection Filter()
    import org.apache.commons.collections4.CollectionUtils;
    import org.apache.commons.collections4.PredicateUtils;
    import java.util.*;
      
    class GFG {
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using Apache Common filter()
            // using Predicate condition notNullPredicate()
            CollectionUtils.filter(list, PredicateUtils.notNullPredicate());
      
            // Print the list
            System.out.println("Modified List: " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List: [Geeks, forGeeks, A computer portal]
    
  6. Uso de Lambdas (Java 8) : el método Stream.filter() se puede usar en Java 8 y devuelve un flujo que consiste en los elementos
    que coinciden con la condición predicada dada.

    Algoritmo :

    1. Obtenga la lista con valores nulos.
    2. Crea un Stream de la lista usando list.stream()
    3. Filtre el flujo de elementos que no son nulos usando list.filter(x -> x != null)
    4. Recopile la transmisión como lista usando .collect(Collectors.toList()
    5. Devolver/Imprimir la lista (ahora con todos los valores nulos eliminados).

    // Java Program to remove nulls
    // from a List using Apache Common COllection Filter()
      
    import java.util.stream.Collectors;
    import java.util.*;
      
    class GFG {
        public static void main(String[] args)
        {
      
            // Create the list with null values
            List<String> list = new ArrayList<>(
                Arrays.asList("Geeks",
                              null,
                              "forGeeks",
                              null,
                              "A computer portal"));
      
            // Print the list
            System.out.println("Initial List: " + list);
      
            // Removing nulls using Java Stream
            // using Predicate condition in lambda expression
            list = list.stream()
                       .filter(x -> x != null)
                       .collect(Collectors.toList());
      
            // Print the list
            System.out.println("Modified List: " + list);
        }
    }
    Producción:

    Initial List: [Geeks, null, forGeeks, null, A computer portal]
    Modified List: [Geeks, forGeeks, A computer portal]
    

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *