randomuser1:
Eu tenho um List<String>
em java
e contém algumas cordas.
Eu também tenho uma hashmap
com String
valores e gostaria de verificar se há qualquer elemento na minha lista que não está no HashMap. Este é o código que eu escrevi:
List<String> someStrings = fetchData();
if (someStrings.stream().noneMatch(s -> myHashMap.containsValue(s))) {
return false;
}
return true;
Mas ele não funciona corretamente. Você pode me ajudar com isso?
também:
Tendo em conta que a sua condição é
se há qualquer elemento na minha lista que não está no HashMap
você pode usar anyMatch
enquanto iteração sobre a lista de elementos para verificar se algum deles não está presente nos valores hashmap.
return someStrings.stream().anyMatch(val -> !myHashMap.containsValue(val))
Ou para olhar para ele como se todos os elementos someStrings
estão presentes em valores hashmap
return someStrings.stream().allMatch(myHashMap::containsValue);
A embora verificação semelhante também poderia ser usando containsAll
durante o Collection
de valores:
return myHashMap.values().containsAll(someStrings);