HOWTO · Java
Filtrado de map en Java
Cómo filtrar un valor de un 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í.