List<String> listA = new Arraylist();
List<String> listB = new Arraylist();
鉴于上面的两个列表,我想迭代并在每个元素上调用相同的方法。
选项 1
for(String aStr: listA){
someCommonMethodToCall(aStr);
someCommonMethodToCall(aStr);
...
}
for(String bStr: listB){
someCommonMethodToCall(bStr);
someCommonMethodToCall(bStr);
...
}
或
选项 2
List<String> mergedList = new ArrayList();
mergedList.addAll(listA);
mergedList.addAll(listB);
for(String elem: mergedList){
someCommonMethodToCall(elem);
someCommonMethodToCall(elem);
...
}
或
选项 3
我觉得选项1应该是最好的。有一些 Java 8 lambda 方法可以做到这一点吗?另外,就性能而言,还有比选项 1 更好的吗?
最佳答案
您可以流式传输列表并将流合并为一个:
Stream.concat(listA.stream(), listB.stream())
.forEach(elem -> {
someCommonMethodToCall(elem);
someOtherMethodToCall(elem);
});
关于java - 在java中迭代2个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45927140/