java - 在java中迭代2个列表

标签 java loops java-8

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/

相关文章:

Java 8 方法引用

java - 检查日期是否早于 10 年和新于 20 年

java - Java中如何构造二维数组?

java - linux下如何设置路径?

java - 如何让这段代码根据用户的输入循环?

javascript - 如何从循环中删除函数以使其兼容 JSLint?

java - 通过使用 Java 8 流对其进行排序将集合转换为 Map

java - android 写入磁盘不可靠 - 写入 file.length !=expected.length

java - Log4J 日志不创建备份文件

c - FOR 循环中的字符串