读书人

java linkedlist clone() 函数存在的必

发布时间: 2013-09-04 10:34:09 作者: rapoo

java linkedlist clone() 函数存在的必要性
如题:
Eg:
import java.util.*;

public class linkedListCloneTask{

public static void main(String[] args) {

// create a LinkedList
LinkedList list1 = new LinkedList();

// add some elements
list1.add("Hello");
list1.add(2);
list1.add("Chocolate");
list1.add("10");

// print the list
System.out.println("LinkedList 1:" + list1);

// create a second LinkedList
LinkedList list2 = new LinkedList();

// clone list1
list2 = (LinkedList) list1.clone() ;
// 这里注意,有没有.clone()结果都是一样的,那还要.clone()做什么,求解!

// print list2
System.out.println("LinkedList 2:" + list2);
}
}

//*****************结果********************
//LinkedList 1:[Hello, 2, Chocolate, 10]
//LinkedList 2:[Hello, 2, Chocolate, 10]
//****************************************
list2 = (LinkedList) list1
见截图
java linkedlist clone() 函数存在的必要性,该怎么处理
亲,你的这个很明确清晰,我想知道的是这样多划一份内存有什么用,最后实现的目的不还是使得List2拥有List1的值么?求大神进一步解答~3Q



还是这张图说明下:
如下图,当List1和List2指向一块内存时,那么其中一个数组值被改变,另一个也会一同被修改,有些需求往往不像这样做,那么Java的API就为我们提供了clone方法。
java linkedlist clone() 函数存在的必要性,该怎么处理
如下图,将同样的数组List1拷贝出一份一样的只不过是在2块不同的内存空间,这样我怎么改List2都不会影响到List1。这就是它们的区别。
java linkedlist clone() 函数存在的必要性,该怎么处理

读书人网 >Java相关

热点推荐