You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何实现两个ArrayList的交叉遍历操作?

交叉遍历实现方案

核心逻辑非常简单:以第一个ArrayList的长度为遍历上限,每轮循环先取出第一个列表的当前索引元素处理,再判断当前索引是否在第二个列表的有效范围内,如果是就取出第二个列表的对应索引元素处理即可,刚好匹配你说的规则。

完整可运行代码如下:

import java.util.ArrayList;

public class CrossTraverseDemo {
    public static void main(String[] args) {
        ArrayList<String> first = new ArrayList<>();
        first.add("a");
        first.add("c");
        first.add("e");
        ArrayList<String> second = new ArrayList<>();
        second.add("b");
        second.add("d");

        // 核心交叉遍历逻辑
        for (int i = 0; i < first.size(); i++) {
            // 处理第一个列表的当前元素
            processItem(first.get(i));
            // 索引未超出第二个列表范围时,处理第二个列表的对应元素
            if (i < second.size()) {
                processItem(second.get(i));
            }
        }
    }

    // 元素处理逻辑,可根据业务需求修改
    private static void processItem(String item) {
        System.out.println("当前处理元素:" + item);
    }
}

运行后输出顺序为:

当前处理元素:a
当前处理元素:b
当前处理元素:c
当前处理元素:d
当前处理元素:e

完全符合你的预期。

额外说明:

  • 时间复杂度为O(n),n为第一个ArrayList的长度,没有额外空间开销,是最优实现
  • 适配你给出的「第二个ArrayList元素数量永远比第一个少1」的前提,不需要额外做长度兼容逻辑
  • 如果列表存储的是其他类型的元素,修改泛型和processItem的入参类型即可

内容的提问来源于stack exchange,提问作者Jingjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:57:00