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

基于已有ArrayList大小创建新ArrayList的Java技术问题

嗨,这需求我常碰到,给你整理两种实用的实现方案,适配不同的场景需求:

合并两个等长ArrayList对应位置元素的实现

首先,既然你明确两个ArrayList<String>的size始终相等,那我们先获取其中一个的长度,接着遍历每个索引,把对应位置的元素处理后加入新列表就行。

场景1:把对应位置元素拼接成单个字符串存入新列表

比如你想让新列表的元素是"1, 5"、"2, 6"这种组合形式,代码示例如下:

import java.util.ArrayList;

public class MergeArrayListsExample {
    public static void main(String[] args) {
        // 初始化你的两个列表
        ArrayList<String> armArray1 = new ArrayList<>();
        armArray1.add("1");
        armArray1.add("2");
        armArray1.add("3");
        armArray1.add("4");

        ArrayList<String> armArray2 = new ArrayList<>();
        armArray2.add("5");
        armArray2.add("6");
        armArray2.add("7");
        armArray2.add("8");

        // 准备存储结果的新列表
        ArrayList<String> mergedList = new ArrayList<>();

        // 获取列表长度(两个列表长度一致,取任意一个即可)
        int listSize = armArray1.size();

        // 遍历每个索引,合并对应元素
        for (int i = 0; i < listSize; i++) {
            // 这里可以自定义拼接规则,比如用空格、横线分隔都可以
            String combined = armArray1.get(i) + ", " + armArray2.get(i);
            mergedList.add(combined);
        }

        // 打印验证结果
        System.out.println(mergedList);
        // 输出:[1, 5, 2, 6, 3, 7, 4, 8]
    }
}

场景2:将对应位置元素交替存入新列表

如果你的需求是新列表按1, 5, 2, 6, 3, 7, 4, 8这样的顺序依次添加,只需修改循环内的逻辑:

for (int i = 0; i < listSize; i++) {
    mergedList.add(armArray1.get(i));
    mergedList.add(armArray2.get(i));
}

额外小提示

  • 虽然题目说两个列表size始终相等,但如果实际场景有不确定性,建议加个长度校验,避免索引越界:
    if (armArray1.size() != armArray2.size()) {
        throw new IllegalArgumentException("两个列表的长度必须一致!");
    }
    
  • 如果你用的是Java 8及以上版本,还可以用Stream API来实现,代码更简洁:
    import java.util.stream.IntStream;
    import java.util.stream.Collectors;
    
    // 场景1的Stream实现
    ArrayList<String> mergedList = IntStream.range(0, armArray1.size())
            .mapToObj(i -> armArray1.get(i) + ", " + armArray2.get(i))
            .collect(Collectors.toCollection(ArrayList::new));
    

不管是基础循环还是Stream方式,都能轻松覆盖你说的4到100个元素的范围,性能完全没问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:15:22