在Java中迭代2个以上的列表

安库什
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更好的选择吗?

mos

您可以流式传输列表并将流合并为一个:

Stream.concat(listA.stream(), listB.stream())
    .forEach(elem -> {
        someCommonMethodToCall(elem);
        someOtherMethodToCall(elem);
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章