Iterator迭代接口是专门用来进行迭代输出的接口,定义如下:
public interface Iterator<E>{ }
Iterator 接口提供的常用方法如下:
序号 | 常用方法 | 说明 |
1 | public boolean hasNext() | 判断集合是否有下一个元素 |
2 | pulbic E next() | 取出当前元素 |
3 | public void remove() | 删除当前元素 |
Iterator 接口本身没有子类,因此要取得该接口的实例,需要采用Collection 接口中的 iterator() 方法来实例化。
实例化 Iterator 接口:
Iterator<E> 对象名 = Collection 接口对象名.iterator()
示例如下:
package com.demo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class USACO2 {
private double discharge;
private String src;
public USACO2(String src, double discharge){
this.src = src;
this.discharge = discharge;
}
public String toString(){
return "排放源: " +src + " 排放量:"+ discharge;
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(!(obj instanceof USACO2)){
return false;
}
USACO2 usa = (USACO2)obj;
if(this.src.equals(usa.src) && this.discharge == usa.discharge)
return true;
return false;
}
}
public class demo {
public static void main(String[] args){
List<USACO2> myList = new ArrayList<USACO2>();
Iterator<USACO2> iter = null;
myList.add(new USACO2("空气", 2509));
myList.add(new USACO2("制冰", 3429));
myList.add(new USACO2("热空调", 21109));
myList.add(new USACO2("热水", 4212));
USACO2 usa = null;
usa = new USACO2("制冰", 3429);
iter = myList.iterator(); //要先创建集合实例化
while(iter.hasNext()){
if(iter.next().equals(usa))
iter.remove();
}
iter = myList.iterator(); //修改集合之后,需要重新 实例化迭代器接口
while(iter.hasNext()){
System.out.println(iter.next());
}
}
}
输出如下:
排放源: 空气 排放量:2509.0
排放源: 热空调 排放量:21109.0
排放源: 热水 排放量:4212.0
注意:必须在创建集合之后才能实例化 Iterator 接口, 否则将出现错误.