我有以下旧式 java 多重循环,我想将其转换为 Java 8 流:
List<Integer> list1 = Arrays.asList(1,2,3);
List<Integer> list2 = Arrays.asList(3,5,6);
List<Integer> list3 = Arrays.asList(3,4,9);
boolean match = true;
int list1Size = list1.size();
int list2Size = list2.size();
for (int i = 0; i < list1Size; i++ ) {
for (int j = 0; j < list2Size && i < list1Size; j++) {
if (list2.get(j).equals(list1.get(i))) {
if (list3.get(j).equals(list1.get(i))) {
System.out.println(list1.get(i));
}
}
}
}
(输出为:3)
我能找到的最好方法是:
IntStream.range(0, list1Size).forEach(
ix1 -> {
IntStream.range(0, list2.size()).forEach(
ix2 -> {
if (ix2 < list2.size() && ix1 < list1.size())
if (list2.get(ix2).equals(list1.get(ix1))) {
if (list3.get(ix2).equals(list1.get(ix1))) {
System.out.println(list1.get(ix1));
}
}
}
);
}
);
这对我来说似乎不太有吸引力......
请注意,我正在使用 2 个循环处理 3 个列表。
有没有更好的办法?
qq_遁去的一_1
慕斯王
温温酱
相关分类