Iteração de lista de objetos Hash Map usando Java 8 Streams [fechado]
Sep 20 2020
Eu tenho que iterar a lista de objetos HashMap. se o valor do objeto do mapa for verdadeiro, eu tenho que retornar essa entrada para um objeto Hash do mapa usando a API de fluxo Java 8
public class HashMapCheck {
static Map<String, Boolean> map;
static Map<String, Boolean> map2;
static List<Map> objMap;
public static void main(String args[]) {
map = new HashMap<String, Boolean>();
map.put("1", true);
map.put("2", false);
map2 = new HashMap<String, Boolean>();
map2.put("4", true);
map2.put("5", true);
objMap = new ArrayList<Map>();
objMap.add(map);
objMap.add(map2);
//Iterate
}
}
Respostas
Steve Sep 20 2020 at 01:42
Não sou um especialista com streams Java, então talvez esta não seja a solução mínima, mas aqui está o que eu descobri usando streams para conseguir o que acho que você deseja:
public class HashMapCheck {
static Map<String, Boolean> map;
static Map<String, Boolean> map2;
static List<Map<String, Boolean>> objMap;
public static void main(String[] args) {
map = new HashMap<>();
map.put("1", true);
map.put("2", false);
map2 = new HashMap<>();
map2.put("4", true);
map2.put("5", true);
objMap = new ArrayList<>();
objMap.add(map);
objMap.add(map2);
Map<String, Boolean> result = objMap.stream().flatMap(x -> x.entrySet().stream()).filter(Map.Entry::getValue).
collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(result);
}
}
Resultado:
{1=true, 4=true, 5=true}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas