遍历map集合及迭代模式

来源:互联网 发布:怎样开好淘宝店铺 编辑:程序博客网 时间:2024/06/05 13:31

先写一个遍历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对象。


0 0
原创粉丝点击