zoukankan      html  css  js  c++  java
  • clone()方法

    1.clone方法可以克隆所指类型中的内容,并指向一个跟被克隆一样的东西。比如说int arr[] ={1 , 2 ,3},使用克隆方法int cloneArr[] =arr.clone(),这时cloneArr就指向了一个新的有三个空间的数组,跟被克隆的arr所指的数组类型及内容一致。

    克隆是对内容进行了复制,但是克隆后指向的是新的数组,不是原来的arr数组,所以对arr和cloneArr是不同的操作。

    2.当对类类型的数组进行克隆时,比如有个Test类,类里只有value; Test[] arr = new Test[2],arr[1] = new Test(),现在arr指向了两个类,并对数组中的第二个位置创建了Test类对象,并给这个对象赋值arr[1].value = 123,这时情况如图

    现在开始克隆,Test[] cloneArr = arr.clone(),这时也指向了类数组,数组里的内容和arr的一样,只是内容一样,arr和cloneArr指的不同,只是内容一样,这时克隆的情况如图

    发现cloneArr[1]所指的和arr[1]所指的一样,因为克隆时把被克隆的内容都拿过来了,所以指向相同,这时如果让cloneArr[1] = new Test(),这样就各指各的了,此时情况如图

    3.二维数组时也是同理,克隆后会把地址也克隆过来,所以会指向同一地方,int[][] arr = new int[2][3],int[][] cloneArr = arr.clone();这时情况如图:

    先给arr[1][2]进行赋值,然后继续克隆,cloneArr[1] = arr[1].clone;这时会把内容赋值过来,但是不在指向原处,此时情况如图:

  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/yudongxuan/p/11515118.html
Copyright © 2011-2022 走看看