6、set(E e):用指定元素替换 next 或 previous 返回的最后一个元素。只有在最后一次调用 next 或 previous 后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用。
以下是一个简单的实例方法:
/** * 初始化集合元素的方法 * @param linkedList */ public void initLinkedList(LinkedList<String> linkedList){ linkedList.add("C"); linkedList.add("B"); linkedList.add("X"); }
/** * 使用正向迭代出集合中的元素 * @param listIterator 链表迭代器 */ public void iteratornext(ListIterator<String> listIterator){ while(listIterator.hasNext()){ System.out.print(listIterator.next().toString()+" "); } System.out.println(); }
/** * 使用反向迭代出集合中的元素 * @param listIterator 链表迭代器 */ public void iteratorPrevious(ListIterator<String> listIterator){ //使用链表迭代器的方法反向迭代出集合中的元素 此时元素的顺序为:A X B C while(listIterator.hasPrevious()){ System.out.print(listIterator.previous()+" "); } System.out.println(); }
/** * 使用链表迭代器向指定的元素位置添加新的元素 * @param listIterator 链表迭代器 * @param item 指定的元素 * @param newItem 需要添加的新元素 * @return */ public void addItem(ListIterator<String> listIterator,String item,String newItem){ while(listIterator.hasNext()){ String str = listIterator.next(); if(str.equals(item)){ listIterator.add(newItem); } } }
/** * 使用链表迭代器将指定的元素替换成信息元素 * @param listIterator 链表迭代器 * @param item 要替换的元素 * @param newItem 替换后的新元素 * @return */ public void updateItem(ListIterator<String> listIterator,String item,String newItem){ while(listIterator.hasNext()){ String str = listIterator.next(); if(str.equals(item)){ listIterator.set(newItem); } } }
public static void main(String[] args) { ListIteratorDemo demo = new ListIteratorDemo(); //声明一个链表对象 LinkedList<String> linkedList = new LinkedList<String>(); demo.initLinkedList(linkedList); //strList.listIterator()调用该方法返回一个链表迭代器对象 ListIterator<String> listIterator = linkedList.listIterator(); //正向迭代出集合中的元素对象 demo.iteratornext(listIterator); //使用迭代器的Add()方法想集合中添加元素,添加元素的位置为集合的末尾 listIterator.add("A"); //反向迭代出集合中的元素 demo.iteratorPrevious(listIterator); //在集合的B元素后添加H元素 demo.addItem(listIterator, "B", "H"); for(int i=0;i<linkedList.size();i++){ System.out.print(linkedList.get(i)+" "); } listIterator = linkedList.listIterator(); demo.updateItem(listIterator, "C", "G"); for(int i=0;i<linkedList.size();i++){ System.out.print(linkedList.get(i)+" "); } }