加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何深度复制2维数组(不同的行大小)

发布时间:2020-12-14 05:58:29 所属栏目:Java 来源:网络整理
导读:这是我在这样的社区中的第一个问题,所以我的格式可能不是很好的抱歉. 既然我的问题是我想在Java中深度复制二维数组.使用固定大小的行和列在1维甚至2维数组中进行操作时非常容易.我的主要问题是我无法对我尝试复制的第二个数组进行初始化,例如: int[][] copy
这是我在这样的社区中的第一个问题,所以我的格式可能不是很好的抱歉.

既然我的问题是我想在Java中深度复制二维数组.使用固定大小的行和列在1维甚至2维数组中进行操作时非常容易.我的主要问题是我无法对我尝试复制的第二个数组进行初始化,例如:

int[][] copyArray = new int[row][column]

因为行大小不固定并且每行索引中的更改(例如我尝试复制此数组):

int[][] envoriment = {{1,1,1},{0,6},{1}};

所以你看,如果我说新的int [3] [4]会有额外的空间,我不想要.有没有一种深度复制这种二维数组的方法?

解决方法

我认为你的意思是列大小不固定.无论如何,一个简单明了的方法是:
public int[][] copy(int[][] input) {
      int[][] target = new int[input.length][];
      for (int i=0; i <input.length; i++) {
        target[i] = Arrays.copyOf(input[i],input[i].length);
      }
      return target;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读