Java ListItetator 与Itetator

ListItetator

1.迭代器指向的位置 

迭代器指向的位置是在元素之前的

 

图片来自https://blog.csdn.net/longshengguoji/article/details/41551491

集合List由四个元素List1、List2、List3和List4组成,当使用语句Iterator iter = List.Iterator()时,迭代器iter指向的位置是上图中Iterator1指向的位置,当执行语句it.next()之后,迭代器指向的位置后移到上图Iterator2所指向的位置。

2.常用方法

add(E e);将指定元素e插入列表,插入位置为迭代器当前位置之前

hasNext();正向遍历,如果迭代器后面还有元素返回true,否则返回false

hasPrevious();逆向遍历列表,如果迭代器之前还有元素则返回true,否则false

next();返回listIterator所指位置之后元素

nextIndex();返回listIterator所指位置之后元素的索引

previous();

previousIndex();

remove();删除迭代器下一个要访问的元素(next/previou)

set(E e);将列表中当前元素设成e

3.一个小注意点:迭代器是“一次性的”

4.用例

import java.util.LinkedList;
import java.util.ListIterator;
public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<String> list=new LinkedList<String>();
        list.add("Diana");
        list.add("Harry");
        list.add("Romeo");
        list.add("Tom");
        
        ListIterator<String> iter=list.listIterator();
        while(iter.hasNext())
        {    
            String str=iter.next();
            if(str.equals("Harry")) {
                iter.add("Juliet");
                iter.add("Nina");
            }

        }
        list.removeLast();
        for(String s:list) {
            System.out.println(s);
            
        }
        System.out.println("list before:"+list);
        ListIterator<String> iter1=list.listIterator();//这里新建了新的iter1,不可以再继续使用iter
        while(iter1.hasNext()) {
            String s1=iter1.next();
            if(s1.length()<5)
                list.remove("Nina");
        }
        System.out.println("list after:"+list);
    }
    
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值