iterator获取当前元素_Java 数据结构 - Iterator迭代器

d11411df22d0d1b61f48970c884b9df4.png

Sourced from

Data Structures and Algorithms in Java, 6th Edition​learning.oreilly.com
5ddd94135e9315deb7b87ee41ccd8a3b.png

迭代器是一种scanning through一系列元素,每次一个的一种软件设计模式。底层的迭代元素可能是被一个容器类所存储,也有可能是经过一系列的运算生成的。

Java针对迭代器定义了java.util.iterator接口,定义有如下2个方法:

41fd86f636dc4e2d7b4c27ec58dd271b.png

这个接口使用了java的泛型变成,next方法会返回一个参数化的元素。 如果next方法在容器中没有元素 再被调用,会报一个NoSuchElementException的错。所以我们需要hasNext方法来帮忙做预判。一个典型的使用代码块如下:

while(iter.hasNext()){
    
  String value = iter.next();
  System,out.println(value);
}

当然java.util.Iterator接口包含第三个方法(但需要注意下图的方法 不是所有迭代器都支持的)。

3fe8aa9166781772c4fe473585d0ae04.png

remove方法可以帮助对一系列collections元素进行筛选(比如丢弃所有的负数)

迭代接口Iterable以及Java的For Each Loop

一个迭代器只能迭代单个Collections一次,直到next方法对所有元素都进行了遍历,但迭代器本身是没有重置这个功能的

如果我们想要通过迭代器反复遍历一个collections的话,我们可以尝试不停的声明new iterator来达到目的。为了更好的标准化,java也对于可迭代对象iterable也定义了如下的方法来直接生成一个迭代器。

1f690757e13d5be20fd5bd2a7fe10b3c.png

一个典型的可迭代对象就是java.util中的ArrayList,当我们调用iterator方法时,它就会返回一个新的迭代器对象(这样其实就可以同时遍历同一个collections)

Java的Iterable类也

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值