Java streams -如何根据内部列表中的值过滤列表的列表



我有一个输入列表比;例如

[[Health{key='day', value='mon'}, Health{key='bp', value='ok'}, Health{key='temp', value='ok'}],
[Health{key='day', value='tues'}, Health{key='bp', value='notok'}, Health{key='temp', value='ok'}]
...]

我想过滤输入,输出应该是list<健康的在比;谁的"bp"是"notok"&&'temp'是'ok'.>

e.g output should be 
[[Health{key='day', value='tues'}, Health{key='bp', value='notok'}, Health{key='temp', value='ok'}]]

我在java中使用流作为参考过滤内部和外部列表,但不确定如何过滤健康,这是一个字典。

我将使用一对而不是Health,但应该看起来像这样:

List<List<Pair<String,String>>> healthList = new ArrayList<>();
List<List<Pair<String,String>>> filterdList = healthList.stream()
.filter(m -> m.stream()
.anyMatch(l -> l.getKey().equals("bp") && l.getValue().equals("notOk")))
.filter(m -> m.stream()
.anyMatch(l -> l.getKey().equals("temp") && l.getValue().equals("ok")))
.collect(Collectors.toList());

最新更新