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
见截图 
亲,你的这个很明确清晰,我想知道的是这样多划一份内存有什么用,最后实现的目的不还是使得List2拥有List1的值么?求大神进一步解答~3Q
还是这张图说明下:
如下图,当List1和List2指向一块内存时,那么其中一个数组值被改变,另一个也会一同被修改,有些需求往往不像这样做,那么Java的API就为我们提供了clone方法。
如下图,将同样的数组List1拷贝出一份一样的只不过是在2块不同的内存空间,这样我怎么改List2都不会影响到List1。这就是它们的区别。