JavaSE——迭代器

迭代器(Iterator)

1.相关概念

1.1迭代器Iterator:一个集合的迭代器。 专门实现集合遍历。Iterator需要的地方Enumeration在Java集合框架。

1.2迭代器有两种不同的枚举方式:

(1)迭代器允许调用者在迭代期间从底层集合中删除元素,并具有明确定义的语义。

(2)方法名称得到改进。

1.3三种方法

(1)boolean hasNext()

如果迭代具有更多的元素,则返回true 。 (换句话说,如果next()返回一个元素而不是抛出一个异常,则返回true )

结果:true如果迭代有更多的元素

(2)E next()

返回迭代中的下一个元素。

结果:迭代中的下一个元素

异常:NoSuchElementException - 如果迭代没有更多的元素

(3)default void remove()

   从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 此方法只能调用一次next()。 如果底层集合在迭代过程中以任何方式进行修改而不是通过调用此方法,则迭代器的行为是未指定的。

实现要求:默认的实现抛出的一个实例UnsupportedOperationException并执行其他操作。

异常:

UnsupportedOperationException -如果 remove操作不会被这个迭代器支持

IllegalStateException - 如果 next方法尚未被调用,或者 remove方法在上次调用 next方法之后已经被调用

1.4迭代器的两个作用:

(1)为了统一接口的遍历方式:

顺序表还是链表,遍历方式是一致的,用户不需要关心内部实现(封装性)

(2)可以删除元素

2.用法

package list;
public interface Iterator{
    //判断迭代器是否走到了线性表最后
    boolean hasNext();
    //1.让迭代器往后走一步;2.返回当前值
    int next();
    //删除当前迭代器代表的值
    int remove();
}

3.了解Iterator和foreach的关系

for(int a:容器){ 

}

只要类实现了Iterator接口,就可以被foreach语法使用了

(迭代器的语法糖)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值