LIinkedList的listiterator方法对于初学者来说,真的很容易搞错。
LinkedList调用listiterrator方法后返回的是ListIterator类型的迭代器,这个类是Iterator的子类,你会发现这个子类中是有add方法的,而超类没有。
为什么呢?
很简单,因为对有序的集合使用迭代器添加元素才有实际意义。但java集合类库提供了子接口ListIterator,它有add方法,然后我们就可以根据迭代器的定位来添加元素了。
如果理论看不懂文字解释,也无所谓,下面的方法,包教包会。
下面的代码,用来测试功能的,我只能说自己 试一遍 ,比什么都有用。
import java.util.*;
public class Hello{
public static void main(String[] args){
LinkedList<String> list=new LinkedList();
list.add("aa");
list.add("bb");
System.out.println(list);
ListIterator<String> iterator = list.listIterator();
//Iterator<String> iterator = list.iterator();
//iterator.next();
iterator.add("cc");
iterator.add("dd");
iterator.add("ee");
//iterator.previous();
//iterator.set("hh");
System.out.println(list);
//System.out.println(list.contains("a"));
//System.out.println(list.get(1));
//System.out.println(list.get(0));
System.out.println(iterator.nextIndex());
//System.out.println(iterator.previousIndex());
ListIterator<String> iterator1 = list.listIterator(3);
iterator1.add("tt");
System.out.println(list);
}
}