java - 如何将小数组复制到大数组?

标签 java

我想将旧数组复制到新数组,并将空元素添加到新数组

import java.util.Arrays;

public class testArray2D {

    public static void main(String[] args) {
        int[][] a = {{1, 2, 3}};
        // make a one bigger
        int add = 3;
        a = Arrays.copyOf(a, a.length + add);
        for (int i = 1; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                a[i][j] = 1;
            }
        }
        for (int i[] : a) {
            System.out.println(Arrays.toString(i));
        }
    }
}

预期输出是

1 2 3
1 1 1 
1 1 1
1 1 1

为什么我无法运行这个?

最佳答案

您需要初始化新的数组元素。

import java.util.Arrays;

public class testArray2D {

    public static void main(String[] args) {
        int[][] a = {{1, 2, 3}};
        // make a one bigger
        int add = 3;
        a = Arrays.copyOf(a, a.length + add);
        for (int i = 1; i < a.length; ++i) {
            if(a[i] == null) {
                a[i] = new int[3];
            }
            for (int j = 0; j < a[i].length; ++j) {
                a[i][j] = 1;
            }
        }
        for (int i[] : a) {
            System.out.println(Arrays.toString(i));
        }
    }
}

关于java - 如何将小数组复制到大数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59265767/

相关文章:

java - 具有可调用的线程池

java - 我应该扩展 ArrayList 以添加不为空的属性吗?

java - 使用嵌套 HashMap 实现 TRIE?

java - Java GUI 总是更新缓慢还是只有我这样?

java - 消息驱动 Bean - 单总线、多激活规范

java - 使用增量运算符进行计算

java - 选择排序方法错误,类型不兼容

Java客户端和服务器问题

java - Mockito 中的模拟类正在调用什么构造函数(如果有)?

java - Android Studio : doesn't build on simulator after clean install