Iterator 的一般用法

本文深入探讨了Java中的迭代器模式,包括其基本概念、功能及应用实例,着重介绍了如何通过迭代器简洁地遍历集合结构中的元素,并提供了具体的代码示例。同时,对比了迭代器与ListIterator的特性,展示了它们在不同场景下的使用优势。

迭代器(Iterator)

  迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

  Java中的Iterator功能比较简单,并且只能单向移动:

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

  (2) 使用next()获得序列中的下一个元素。

  (3) 使用hasNext()检查序列中是否还有元素。

  (4) 使用remove()将迭代器新返回的元素删除。

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

迭代器应用:

list l = new ArrayList();
	l.add("aa");
	l.add("bb");
	l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
	String str = (String)iter.next();
	System.out.println(str);
 }

  Iterator iter = l.iterator();
 while(iter.hasNext()){
	String str = (String) iter.next();
	System.out.println(str);
 }


 

转自:http://www.cnblogs.com/amboyna/archive/2007/09/25/904804.html

`Iterator` 是 Java 中用于遍历集合元素的接口,提供了统一的方式来访问集合中的元素,而无需关心集合的具体实现。以下是其使用方法: #### 1. 获取迭代器 所有实现了 `Iterable` 接口的集合类都可以通过 `iterator()` 方法获取迭代器。示例如下: ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); // 获取迭代器 Iterator<String> iterator = list.iterator(); } } ``` #### 2. 使用 `hasNext()` 和 `next()` 方法遍历集合 `hasNext()` 方法用于判断集合中是否还有下一个元素,`next()` 方法用于返回下一个元素。示例如下: ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } } } ``` #### 3. 使用 `remove()` 方法删除元素 `remove()` 方法用于删除 `next()` 方法最后返回的元素。需要注意的是,该方法必须在每次调用 `next()` 方法之后调用一次,否则会抛出 `IllegalStateException` 异常。示例如下: ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorRemoveExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); if ("banana".equals(element)) { iterator.remove(); } } System.out.println(list); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值