我有这段代码,我想使用流编写它。
我需要检查hList是否包含所有dFoods元素。
int count = 0;
for(int i = 0; i< dFoods.size(); i++){
for(int j = 0; j< hList.size(); j++){
if(hList.get(j).title.equals(dFoods.get(i).name) && hList.get(j).time.equals(dFoods.get(i).timestamp)){
count ++;
}
}
}
if(count != dFoods.Elements.size()){
System.out.println("Not all dFoods elements are in a hList");
}
我试过了
dFoods.forEach(df -> {
hList.stream().filter(hl -> df.Name.equals(hl.title) && df.Timestamp.equals(hl.time)).forEach(hl -> {
System.out.println(df.Name + " " + df.Timestamp);
});
});
它可以正确写出,但是我需要数数,并且不能通过这种方式完成。
最佳答案
dFoods.stream()
.allMatch(df ->
hList.stream
.anyMatch(hl -> df.Name.equals(hl.title) && df.Timestamp.equals(hl.time)))