java集合--Iterator接口

本文介绍了Java中Iterator的相关内容。Iterator来自java.util包,用于集合元素的迭代输出。文中阐述了其方法,如hasNext()、next()等,还说明了实例化方式及使用注意事项,如一个对象只能用一次、remove方法调用次序等,也提及了使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    上一篇文章中我在集合元素的遍历中已经有涉及到Iterator的普遍使用方法,但是并没有对此进行解释。     其实,Iterator来源于java.util包,也是属于Java集合框架中的一份子,不同于Collection(存放单一数据)和Map(存放具有映射关系的数据),Iterator主要用于集合元素的迭代输出,所以它的对象又被称为迭代器。

    Iterator的方法包括:

表头表头
boolean hasNext();判断迭代器是否还有未遍历的元素
E next();返回迭代器中下一未遍历元素
void remove();移除迭代器上一遍历的元素
void forEachRemaining(Consumer action)以特定的Lambda表达式遍历元素

注:void forEachRemaining(Consumer action)为Java 8新增的默认方法。

    下面是Iterator的实例化以及各方法的使用方法

  • Iterator的实例化
Iterator it=c5.iterator();
复制代码

    Iterator本身不存在容纳对象的能力,它的对象必须依附于Collection对象。 同时,一个Iterator对象只能使用一次,复用会导致java.util.ConcurrentModificationException。我还没搞懂为什么会这样,应该是关于设计模式的内容。

  • boolean hasNext();以及next();
while(it.hasNext()) {
	System.out.println(it.next());
}
复制代码
输出:5
复制代码
  • void remove();
while(it.hasNext()) {
	System.out.println(it.next());
	it.remove();
}
复制代码
输出:5
复制代码

    remove方法要在next方法之后调用,次序调换会导致java.lang.IllegalStateException

  • void forEachRemaining(Consumer action);
Iterator it=c5.iterator();
it.forEachRemaining(obj->System.out.println(obj));
复制代码
输出:5
复制代码

    通过特定的Lambda表达式格式输出元素。

     Iterator接口就写到这里了。通常我都是用它作为测试Collection对象的,好处就是不用通过循环遍历,代码量会少一点。但是正式使用我还是会使用循环遍历Collection对象,虽则代码量多,但是可以省掉一个对象的内存空间,能省一点是一点,哈哈!

    如果你还想了解关于java集合的内容,欢迎点击juejin.im/post/5cce5f…

转载于:https://juejin.im/post/5ccea6c3f265da035f6fe99c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值