遍历map集合及迭代模式

先写一个遍历map的例子

package test.com.myioc;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class testmap {
	public static void main(String[] args){
		Map<String, Integer> m = new HashMap<String, Integer>();
		m.put("m", 1);
		m.put("n", 2);
		
		//遍历map集合
		System.out.println("通过entryset遍历。。。");
		Set<Map.Entry<String, Integer>> s = m.entrySet();
		Iterator<Map.Entry<String, Integer>> i = s.iterator();
		while(i.hasNext()){
			Map.Entry<String, Integer> e = i.next();
			System.out.print(e.getKey() + "  ");
			System.out.println(e.getValue());
		}
		
		//遍历map集合
		System.out.println("通过key遍历。。。");
		Set<String> sKey = m.keySet();
		Iterator<String> iKey = sKey.iterator();
		while(iKey.hasNext()){
			String e = iKey.next();
			System.out.print(e + "  ");
			System.out.println(m.get(e));
		}
	}
}


其中就用到了迭代模式

这种模式允许客户端按照一个线性顺序遍历所有的元素对象,把元素对象提取出来或者删除掉。

 List和set都是需要实现Iterable接口

public interface Iterable<T> {

    /**
     * Returns an iterator over a set of elements of type T.
     * 
     * @return an Iterator.
     */
    Iterator<T> iterator();
}

而iterator也是一个接口,要求实现取元素,判断还有没有没取的元素等

public interface Iterator<E> {

    boolean hasNext();

    E next();

    void remove();
}

虽然map没有实现Iterable接口,但是它也有提供一个entrySet,keySet等方法,来获得set集合,然后通过,set集合来获得,iterator对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值