Java中数组怎么深度复制

2019-09-26 18:57:29

大家都知道数组的深度复制吧,就是把旧数组复制后,重新生成一块内存空间,并用新数组指向这片内存空间。

有时候循环进行一些操作,放入list,发现,list中的数据都是一个数据,这就尴尬了,我们需要深度复制,才能解决这个问题。或者生成新的,也就是深度复制。


今天,看到了一个java.util.Arrays.copyOf()方法,很适合深复制啊,玩儿一下代码。

int[] a = {1,2,3,4,5,6,7};
  
  int[] b = Arrays.copyOf(a, 7);
  
  System.out.print("数组a:");
  for( int i = 0 ; i < 7; i++) {
   System.out.print(a[i]+",");
  }
  System.out.println("");
  
  System.out.print("数组b:");
  for( int i = 0 ; i < 7; i++) {
   System.out.print(b[i]+",");
  }
  System.out.println("");
  
  a[0] = 8;
  
  System.out.println("*******************");
  System.out.println("我们把a[0]改成8,我们看看对b[0]有影响吗?");
  System.out.println("*******************");
  
  System.out.print("数组a:");
  for( int i = 0 ; i < 7; i++) {
   System.out.print(a[i]+",");
  }
  System.out.println("");
  
  System.out.print("数组b:");
  for( int i = 0 ; i < 7; i++) {
   System.out.print(b[i]+",");
  }
  System.out.println("");

实现


  • 2019-12-04 10:46:26

    nuxt.js项目中全局捕获异常并生成错误日志全过程

     需求:客户在使用过程中页面报错时,可以生成错误记录传回服务器,以便改进。   步骤:     一.全局捕获异常,     二.发送到服务端,     三.生成错误日志。   一.全局捕获异常 如图,vue提供了errorHandle这个方法来处理全局异常,更多详细内容参见官网。

  • 2019-12-04 10:47:59

    nuxt.js项目中全局捕获异常并生成错误日志全过程

     需求:客户在使用过程中页面报错时,可以生成错误记录传回服务器,以便改进。   步骤:     一.全局捕获异常,     二.发送到服务端,     三.生成错误日志。   一.全局捕获异常 如图,vue提供了errorHandle这个方法来处理全局异常,更多详细内容参见官网。

  • 2019-12-04 10:48:18

    vue 项目资源文件 static 和 assets 不说区别直接使用?

    assets中资源会webpack构建压缩到你代码中,而static文件直接引用。 static 中长存放类包、插件等第三方的文件,assets里放属资源文件比如自己资源图片、css文件、js文件。 引入资源的方式static文件夹可以使用~/static/方式引入, assets文件夹可以使用 ~@/assets 方式引入

  • 2019-12-05 17:01:36

    Vue 结合 Axios 接口超时统一处理

    当网路慢的时候。又或者公司服务器不在内地的时候,接口数据请求不回来超时报错的情况相信大家肯定遇到过的,这里我把我公司项目请求超时的处理方法分享下,希望看过后有帮助。

  • 2019-12-05 17:13:40

    JS模板工具lodash.template的简单用法

    lodash是从underscore分支的一个项目,之前我写了一篇JS模板工具underscore.template的简单用法,lodash跟underscore很相似,这也简单介绍一下lodash的template方法。 先把underscore的文章中用过的代码贴过来,把underscore的js文件换成lodash的js,其他一字不改,然后我们试试: