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í.
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