Java开发之Java对数组的复制

发表于:2015-12-04 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:风雪幻林    来源:51Testing软件测试网采编

  苏格拉底曾说过,“世界上最快乐的事,莫过于为理想而奋斗。”人生短短数十年,何不为梦想而奋斗一把?其实只要主动追求,梦想并不遥远。总有一天,你会把它攥在手里。
  作为写的第一篇Java文章,展望一下开始下面的学习
  数组:
  1.数组浅拷贝:
  1 public static void main(String[] args)
  2     {
  3         int [] a={1,3,5,7,8,9};
  4         int[] b=a;   //这里赋值的只是数组的地址
  5         System.out.println(Arrays.toString(a));
  6         b[2]=21;       //所以当修改数组b时数组a也会随着改变
  7         System.out.println(Arrays.toString(a));
  8         System.out.println(Arrays.toString(b));
  9         /*输出结果为:[1, 3, 5, 7, 8, 9]
  10                               [1, 3, 21, 7, 8, 9]
  11                               [1, 3, 21, 7, 8, 9]
  12          */
  13     }
  浅拷贝:两个变量共同指向同一对象;
  2.数组深拷贝:
  public static void main(String[] args)
  {
  int [] a={1,3,5,7,8,9};
  int[] b=a.clone();//这就是把数组a的内容复制一份给数组b
  System.out.println(Arrays.toString(a));
  b[2]=21;
  System.out.println(Arrays.toString(b));
  /*运行结果:
  *               [1, 3, 5, 7, 8, 9]
  [1, 3, 21, 7, 8, 9]
  */
  }
  小结:
  数组的复制现在至少有四个思路:
  使用循环结构 这种方法最灵活。唯一不足的地方就是代码比较多
  使用Object 类的clone()方法,这种方法最简单,得到原数组的一个副本。灵活性也最差,效率最差尤其是在数组元素很大或者复制对象数组时。
  使用System的arraycopy这种方法被告知速度最快,并且灵活性也较好,可以指定原数组名称,以及元素的开始位置,复制的元素的个数,目标数组名称,目标数组的位置。
  Array类的copyOf()方法与copyOfRange()方法可实现对数组的复制(
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号