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

如何将两个数组合并为按对应索引匹配的二维数组?

按索引合并两个数组的解决方案

嘿,这个问题其实挺常见的,咱们一步步来搞定它!你需要把两个同长度的数组按对应索引合并成二维数组,核心思路就是遍历每个索引位置,把两个数组对应位置的元素配对起来。

方法一:基础循环实现(最直观)

这是最容易理解的方式,适合刚接触Java的朋友:

public class ArrayMerge {
    public static void main(String[] args) {
        String movieList[] = { "A", "B", "C", "D", "E" };
        int gross[] = { 623, 333, 516, 389, 448 };
        
        // 先校验两个数组长度是否一致,避免越界
        if (movieList.length != gross.length) {
            throw new IllegalArgumentException("两个数组的长度必须相同!");
        }
        
        // 创建结果二维数组,长度和原数组一致
        String[][] result = new String[movieList.length][2];
        
        // 遍历每个索引,配对元素
        for (int i = 0; i < movieList.length; i++) {
            result[i][0] = movieList[i];
            // 把int类型的票房转成String,因为结果数组是String类型
            result[i][1] = String.valueOf(gross[i]);
        }
        
        // 测试输出结果
        for (String[] pair : result) {
            System.out.println("{" + pair[0] + ", " + pair[1] + "}");
        }
    }
}

运行这段代码后,你会得到想要的结果:

{A, 623}
{B, 333}
{C, 516}
{D, 389}
{E, 448}

方法二:Java 8+ 流处理(更简洁)

如果你的项目用的是Java 8及以上版本,可以用流API来简化代码,看起来更优雅:

import java.util.stream.IntStream;

public class ArrayMergeWithStream {
    public static void main(String[] args) {
        String movieList[] = { "A", "B", "C", "D", "E" };
        int gross[] = { 623, 333, 516, 389, 448 };
        
        if (movieList.length != gross.length) {
            throw new IllegalArgumentException("两个数组的长度必须相同!");
        }
        
        // 用IntStream遍历索引,映射成配对数组,再收集成二维数组
        String[][] result = IntStream.range(0, movieList.length)
                .mapToObj(i -> new String[]{movieList[i], String.valueOf(gross[i])})
                .toArray(String[][]::new);
        
        // 输出测试
        for (String[] pair : result) {
            System.out.println("{" + pair[0] + ", " + pair[1] + "}");
        }
    }
}

关键注意点

  • 一定要确保两个数组的长度完全一致,否则要么会出现数组越界异常,要么会导致部分数据无法配对。
  • 因为你想要的结果数组是String[][]类型,所以需要把int类型的票房值转换成String(用String.valueOf()或者Integer.toString()都可以)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:18:47