怎么验证一个集合里是否有两个元素?

假设我有一个List<Car>, 我想知道里面是否包括:Civic和Focus。现在我是filter两次,但想知道有没有更好的方案:

boolean isCivic = reportElements.stream()
        .filter(car -> "Civic".equals(car.getModel()))
        .findFirst()
        .isPresent();

boolean isFocus = reportElements.stream()
        .filter(car -> "Focus".equals(car.getModel()))
        .findFirst()
        .isPresent();

return isCivic && isFocus;
MMTTMM
浏览 728回答 2
2回答

猛跑小猪

这是我在StackOverflow上看到的一个题目:一个比较标准的答案是: return list.stream() .map(Car::getModel) .filter(m -> m.equals("Focus") || m.equals("Civic")) .distinct() .limit(2) .count() == 2;

HUWWW

boolean[] contains = new boolean[2]; int sum = reportElements.stream().forEach(car -> { if ("Civic".equals(car.getModel())) contains[0] = true; if ("Focus".equals(car.getModel())) contains[1] = true; } ); return contains[0] && contains[1]; 说实话,毕竟你就俩个,怎么写都没啥意思
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java