5.12 使用Iterator迭代器遍历List、Set和Map

使用Iterator迭代器遍历List、Set和Map

基础知识

      所有集合类均未提供相应的遍历方法,而是把遍历交给迭代器完成。迭代器为集合而生,专门实现集合遍历。
1、Iterator方法

  • boolean hasNext(): 判断是否存在另一个可访问的元素 。
  • Object next(): 返回要访问的下一个元素 。
  • void remove(): 删除上次访问返回的对象。

2、可以使用Iterator遍历的本质是 实现Iterable接口。

代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * 测试迭代器遍历List、Set、Map
 * @author dxt
 *
 */
public class TestIterator {
	public static void main(String[] args){
		//1. 遍历List
		testIteratorList();
		//2. 遍历Set
		testIteratorSet();
		//3.1  遍历Map, 方法1
		testIteratorMap();
		//3.2 遍历Map,方法2
		testIteratorMap2();
	}
	/**
	 * 迭代器遍历List
	 */
	public static void testIteratorList(){
		//建立list容器,并添加数据
		List<String> list = new ArrayList<String>();
		list.add("aa");
		list.add("bb");
		list.add("cc");
		list.add("dd");
		//初始化一个迭代器对象,然后遍历容器
		for(Iterator<String> iter = list.iterator(); iter.hasNext();){
			String temp = iter.next();	//next()即返回当前对象,同时游标下移
			System.out.println(temp);
		}
	}
	/**
	 * 迭代器遍历Set
	 */
	public static void testIteratorSet(){
		Set<Integer> set = new HashSet<Integer>();
		set.add(10);
		set.add(20);
		set.add(30);
		set.add(5);
		for(Iterator<Integer> iter = set.iterator(); iter.hasNext();){
			Integer i = iter.next();
			System.out.println(i.intValue());
		}
	}
	/**
	 * 迭代器遍历Map, 第一种方法
	 */
	public static void testIteratorMap(){
		//初始化一个map容器
		Map<Integer, String> map = new HashMap<Integer, String>();
		map.put(10, "aa");
		map.put(20, "bb");
		map.put(30, "cc");
		//获得节点的Set集合, Entry<K, V>是map中的一个节点
		Set<Entry<Integer, String>> ss = map.entrySet();
		for(Iterator<Entry<Integer, String>> iter = ss.iterator(); iter.hasNext();){
			Entry<Integer, String> temp = iter.next();
			System.out.println(temp.getKey() + "--" + temp.getValue());
		}
	}
	/**
	 * 迭代器遍历Map, 第二种方法
	 */
	public static void testIteratorMap2(){
		//初始化一个map容器
		Map<Integer, String> map = new HashMap<Integer, String>();
		map.put(10, "aa");
		map.put(20, "bb");
		map.put(30, "cc");
		
		Set<Integer> keySet = map.keySet();
		for(Iterator<Integer> iter = keySet.iterator(); iter.hasNext();){
			Integer key = iter.next();
			System.out.println(key.intValue() + "---" + map.get(key));
		}
	}
}

结果

result

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值