迭代器
迭代器是一个遍历数据集合的对象。在遍历过程中,可以查看数据项、修改数据项、添加数据项及删除数据项。JAVA类库中含有多个接口,定义了用迭代器的方法。
1.迭代器的基本概念
可以将迭代器看作一个程序组件,它为用户提供了相关的方法,调用这些方法,就可以控制迭代过程。
2.接口Iterator
java的接口java.util.Iterator中使用泛型表示迭代时要处理的项的数据类型,接口中说明了三种方法,分别是hasNext、next、和remove。方法hasNext查看迭代器是否有下一项返回,如果有,则next返回指向它的引用。方法remove可以删除调用next时最后返回的项,如果不允许迭代器进行删除,则需抛出异常。
3.使用迭代器的示例
例1:运用迭代器遍历输出
package iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class iterator {
public static void main(String[] args) {
//实现遍历
java.util.List<Integer> li=new ArrayList();
li.add(1);
li.add(2);
li.add(3);
Iterator it=li.iterator();
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
}
}
例2:生成随机数进行遍历
package iterator;
import java.util.*;
public class iterator1 {
public static void main(String[] args) {
//定义一个集合,往集合中添加元素(0-30之间 添加10个
//使用迭代器遍历集合 删除<10的元素)
List<Integer> li=new ArrayList<Integer>();//迭代器添加随机数
Random r=new Random();//定义一个随机类,生成随机数
for(int i=0;i<10;i++)//生成10个随机数
{
li.add(r.nextInt(31));//0-30之间 则定义+1
}
System.out.println(li);//遍历输出
Iterator<Integer> it=li.iterator();//再次定义一个迭代器,删除<10的数
while(it.hasNext())//hasnext() 判断是否有下一项
{
int a=it.next();//next()指向下一项
if(a<10)
{
it.remove();//remove()删除next所指元素
}
}
System.out.println(li);
}
}
例3:生成随机数并计算次数
package iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class iterator2 {
public static void main(String[] args) {
// 定义一个集合,往集合中添加0-100个元素(0-100之间)
//使用迭代器统计重复出现的次数
List<Integer> li=new ArrayList<Integer>();
Random r=new Random();//定义一个随机类,生成随机数
for(int i=0;i<100;i++) {//生成100个随机数
li.add(r.nextInt(101));
}
System.out.println(li);//遍历输出
Iterator<Integer> it=li.iterator();//再次定义迭代器
while(it.hasNext()) {//hasnext() 判断是否有下一项
int num=0;//重复出现的次数
int count=0;//出现的次数
int a=it.next();
Iterator<Integer> it1=li.iterator();//再次定义迭代器
while(it1.hasNext()) {
int b=it1.next();
if(a==b){
count++;
num=b;
}
}System.out.println(num+"出现了"+count+"次");
}
}
}