Java - java.util.Iterator

本文介绍迭代器模式的基本概念,展示了如何使用Java实现迭代器模式来遍历集合类。通过实例演示了获取迭代器并利用hasNext和next方法访问集合元素的过程。

迭代器(Iterator) 模式,又叫做游标(Cursor )模式

public interface Iterator {             
    boolean hasNext();//是否有下一个,有返回true,否则返回false   
    Object next();// 遍历到下一个   
    void remove();// 删除当前元素   
}

遍历

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/** 
 * 通过迭代函数访问类集,步骤如下
 * 		通过调用类集的iterator()获得对类集的迭代函数
 * 		建立一个调用hasNext()的循环,只要hasNext()返回true,就进行循环迭代
 * 		在循环内部,通过调用next()方法得到每一个元素
 * hasNext()相当一个指针,最开始指针在第一个元素的前面,
 * 		循环一次指针移动到下一个元素的后面,下下一个元素的前面
 * 每一种集合类返回的Iterator具体类型可能不同,  
 * 		Array可能返回ArrayIterator,Set可能返回 SetIterator,
 * 		Tree可能返回 TreeIterator,但是它们都实现了Iterator接口 
 * 因此,客户端不关心到底是哪种Iterator,它只需要获得这个Iterator接口即可,这就是面向对象的优势 
 */ 
public class Demo {  
    public static void main(String[] args) {  
    	Set set = new HashSet();
		set.add("a");
		set.add("b");
		set.add("c");
		Iterator ite = set.iterator();
		while(ite.hasNext()){
			System.out.println(ite.next());
		}
    }  
}


`import java.util.Iterator;` 是Java语言中用于导入`Iterator`接口的语句。`Iterator`接口位于`java.util`包中,它提供了一种方法来访问集合(Collection)对象的每一个元素,而不必关心集合的内部结构。 `Iterator`接口主要包含以下方法1. `boolean hasNext()`:用于检查是否存在下一个元素,如果存在则返回`true`,否则返回`false`。 2. `E next()`:返回集合中的下一个元素,并将迭代器的位置移动到下一个元素。 3. `void remove()`:删除由`next()`方法返回的最后一个元素,此方法必须在调用`next()`之后才能使用,否则会抛出`IllegalStateException`异常。 使用`Iterator`可以安全地在遍历集合的过程中修改集合(例如删除元素),这是因为迭代器在遍历集合时能够提供一种结构性的遍历方式,这比直接使用索引或计数器来遍历集合更安全。 下面是一个简单的使用`Iterator`遍历`List`集合的示例代码: ```java import java.util.ArrayList; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("元素1"); list.add("元素2"); list.add("元素3"); Iterator<String> iterator = list.iterator(); while(iterator.hasNext()) { String element = iterator.next(); System.out.println(element); // 可以在此处安全地删除元素 // iterator.remove(); } } } ``` 在这个示例中,我们创建了一个`ArrayList`集合,并添加了三个字符串元素。然后我们通过`iterator()`方法获取了`Iterator`实例,并使用`while`循环遍历集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值