代码如下:
import java.util.*;
public class Example12_6 {
public static void main(String args[]) {
LinkedList<String> list1=new LinkedList<String>();
list1.add("A");
list1.add("B");
list1.add("C");
list1.add("D");
list1.add("E");
LinkedList<String> list2 =(LinkedList<String>)list1.clone(); //这里我有两个问题不明白,
//第一是带有类型参数的泛型链表这样强制转化不是会擦除吗?
//和拿LinkedList直接进行强制转化有区别吗?
//第二是LinkedList中的clone方法不是浅复制吗?
//那么list2中的元素指向的不也是list1中的元素吗?
//那么下面对list1进行洗牌后list2中的元素怎么不变呢?
System.out.print("链表中的数据:");
Iterator<String> iter=list1.iterator();
while(iter.hasNext()) {
String str=iter.next();
System.out.print(str+" ");
}
Collections.shuffle(list1); //洗牌
System.out.printf("\n洗牌后链表中的数据:");
iter=list1.iterator();
while(iter.hasNext()) {
String str=iter.next();
System.out.print(str+" ");
}
System.out.printf("\n链表中的数据:");
iter=list2.iterator();
while(iter.hasNext()) {
String str=iter.next();
System.out.print(str+" ");
}
Collections.rotate(list2,2); //向右旋转2步
System.out.printf("\n向右旋转2步后链表中的数据:");
iter=list2.iterator();
while(iter.hasNext()) {
String str=iter.next();
System.out.print(str+" ");
}
}
}
本人还是小白一枚,虚心求教。