Iterator详解

java.util接口 Iterator

当遍历集合时,首先通过调用Collection集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

接口内部实现方法

Boolean hasNext();//判断是否有下一个元素,如果仍有元素可以迭代,则返回 true。

E next();//获取元素 返回迭代的下一个元素。

void remove();//删除元素,获取的是谁,删除的就是谁 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。

实现原理:

迭代器的实现原理(主要操作):

    hasNext():
           cursor!=size;//游标和元素个数进行比较,不相同就认为有下一个元素。
   next():
           数组名[cursor++];//获得游标位置的元素,然后游标加一。

通过迭代器遍历集合的过程不能通过集合对象进行增、删操作。但可以使用迭代器的删除方法删除元素。

public static void main(String[] args) {
        //新建一个集合并添加元素
        Collection c = new ArrayList();
        c.add("one");
        c.add("#");
        c.add("two");
        c.add("#");
        c.add("three");
        c.add("#");
        c.add("four");
        c.add("#");
        c.add("five");
        System.out.println(c);//[one, #, two, #, three, #, four, #, five]
     
        Iterator it = c.iterator();
        while(it.hasNext()){
            String str = (String)it.next();
            System.out.println(str);
            if("#".equals(str)){
                //迭代器要求在遍历的过程中不能通过集合的方法增删元素否则会抛出异常!
//                c.remove(str); //报异常,不能使用集合匹配元素删除
                //迭代器提供的remove可以删除迭代器当前位置表示的集合元素
               it.remove();
            }
        }
        System.out.println(c);//[one, two, three, four, five]

使用迭代器遍历map

//map集合遍历,省略map的声明和数据添加
Set set = map.entrySet();                                      // 通过entrySet()方法转变成set集合
 Iterator i = set.iterator();                                  //通过集合获取迭代器对象    
  while(i.hasNext()){                                          //判断是否
    Map.Entry<String, String> entry1=(Map.Entry<String, String>)i.next();  //next()获取下一个对象
    System.out.println(entry1.getKey()+"=="+entry1.getValue());  //输出元素内容
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值