以下方法的功能是尝试通过添加两个数字的倍数来遍历列表从3到999,其中multiplosDe.get(0)
可以是4而multiplosDe.get(1)
可以是7。
如果我只发送带有两个Integer对象的列表,则此函数有效。我想要的是能够发送n个对象的列表,而不必将|| multiplosDe.get(2)
添加到谓词。
public long sumaDeMultiplos(List<Integer> multiplosDe) {
int suma = 0;
IntPredicate predicate = s -> (s%multiplosDe.get(0)==0 || s%multiplosDe.get(1)==0);
suma = IntStream.range(3, 1000).filter(predicate).sum();
return suma;
}
答案 0 :(得分:3)
IntPredicate predicate = s -> multiplosDe.stream().anyMatch(i -> s % i == 0);