迭代器(java笔记)

迭代器

迭代器是一个遍历数据集合的对象。在遍历过程中,可以查看数据项、修改数据项、添加数据项及删除数据项。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+"次");
			}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值