Filtrado de map en Java

Haider Ali 12 octubre 2023
Filtrado de map en Java

Aprenderemos a filtrar los valores del map en el lenguaje de programación Java. Hay dos métodos a través de los cuales puede realizar esta tarea. Echemos un vistazo a ellos.

Filtrado de map en Java

Los dos métodos que podemos usar para filtrar un map son entrySet() y getKey(). En el primer método, entrySet(), filtramos el map usando valores.

Usamos el par clave-valor completo en el segundo método, getKey(). Los métodos son algo complejos e involucran múltiples conversiones.

entrySet()

El método entryset() devuelve un valor. Podemos insertar un valor y verificar si ese valor está presente en un map o no. Mira el siguiente código.

import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
  public static void main(String[] args) {
    String result = "";
    Map<Integer, String> Country = new HashMap<>();
    Country.put(1, "Canada"); // Inserting Value
    Country.put(2, "UnitedStates"); // Inserting Value
    Country.put(3, "UnitedKingdom"); // Inserting Value
    Country.put(4, "Argentina"); // Inserting Value

    // Map -> Stream -> Filter -> String   //Filter Using Map Value
    result = Country.entrySet()
                 .stream()
                 .filter(map -> "Argentina".equals(map.getValue()))
                 .map(map -> map.getValue())
                 .collect(Collectors.joining());
    System.out.println("Filtered Value Is ::" + result);
  }
}

Producción :

Filtered Value Is ::Argentina

La línea de código que filtra un valor es bastante larga. Como se mencionó anteriormente, convertimos los valores de un Map en un Stream. Luego, filtramos ese flujo y almacenamos el valor filtrado dentro de una cadena: el método stream convierte el conjunto en flujo. El método filter filtrará el valor del map.

getKey()

El método getKey() devuelve el par clave-valor completo. En lugar de hacer coincidir un valor, sacamos el valor usando su clave. El par clave-valor filtrado completo se almacena dentro de otro map y luego se imprime. Mira el siguiente código.

import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
  public static void main(String[] args) {
    String result = "";
    Map<Integer, String> Country = new HashMap<>();
    Country.put(1, "Canada"); // Inseting Value
    Country.put(2, "UnitedStates"); // Inserting Value
    Country.put(3, "UnitedKingdom"); // Inserting Value
    Country.put(4, "Argentina"); // Inserting Value

    // Filter Using Map Value
    Map<Integer, String> pair =
        Country.entrySet()
            .stream()
            .filter(map -> map.getKey().intValue() == 1)
            .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));
    System.out.println("Pair Is : " + pair);
  }
}

Producción :

Pair Is : {1=Canada}

Para tener una comprensión concreta de los conceptos, debe visitar los siguientes enlaces.

Aprende más sobre Streams aquí y aprende más sobre Maps aquí.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Artículo relacionado - Java Map