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);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句