zoukankan      html  css  js  c++  java
  • Java开发之Java对数组的复制

           苏格拉底曾说过,“世界上最快乐的事,莫过于为理想而奋斗。”人生短短数十年,何不为梦想而奋斗一把?其实只要主动追求,梦想并不遥远。总有一天,你会把它攥在手里。

    作为写的第一篇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]
             */
        }

    小结:

    数组的复制现在至少有四个思路:

    1. 使用循环结构 这种方法最灵活。唯一不足的地方就是代码比较多
    2. 使用Object 类的clone()方法,这种方法最简单,得到原数组的一个副本。灵活性也最差,效率最差尤其是在数组元素很大或者复制对象数组时。
    3. 使用System的arraycopy这种方法被告知速度最快,并且灵活性也较好,可以指定原数组名称,以及元素的开始位置,复制的元素的个数,目标数组名称,目标数组的位置。
    4. Array类的copyOf()方法与copyOfRange()方法可实现对数组的复制
  • 相关阅读:
    Android Fragment (二) 实例1
    Android Fragment (一)
    Android --差缺补漏之 Intent&putExtra()
    BAT脚本如何自动执行 adb shell 以后的命令
    Eclipse的快捷键
    adb server is out of date. killing...
    当有多个设备online时,命令行窗口通过adb连接指定设备方法
    我的三星手机
    android.database.cursorindexoutofboundsexception错误解决 及获取某行某列信息
    Android 中Attr 和TypedArray的用法
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/5009757.html
Copyright © 2011-2022 走看看