我试图确定数组列表中的数字是否可以被另一个数组列表中的所有数字整除。我下面的代码输出全部来自数字的listdiv列表是由disible任何的除数listdivisor。我想输出可被列表中的所有除法整除的值,而不是其中的任何一个。例如,如果我有 listdiv = [1,2,3,,5,8] 和 listdivisor= [2,4]。预期输出应为 8 ,但此代码输出 2 和 8 。
谢谢!您的努力将不胜感激!
for (int i = 0; i < listdiv.size(); i++) {
for (int c = 0; c < listdivisor.size(); c++) {
if (listdiv.get(i) % listdivisor.get(c) == 0) {
System.out.println("final results are : " + listdiv.get(i));
}
}
}
Run Code Online (Sandbox Code Playgroud)
java 8的其他方式:
List<Integer> collect = listdiv.stream().filter(p ->
listdivisor.stream().allMatch(d -> p % d == 0)
).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
或更好的性能parallelStream():
List<Integer> collect = listdiv.parallelStream().filter(p ->
listdivisor.parallelStream().allMatch(d -> p % d == 0)
).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)