我有这段代码,我想使用流编写它。
我需要检查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)))

10-06 03:26