zoukankan      html  css  js  c++  java
  • 56 容器(十)——Iterator迭代器遍历容器

    迭代器的获取

    LIst与Set容器统一使用他们的对象.Iterator()方法获得迭代器对象,然后使用while循环配合迭代器的方法hasNext()及next()来遍历容器。

    List<String> myList = new ArrayList<>();
    Iterator<String> it = myList.iterator();

     while(it.hasNext()) {
     System.out.println(it.next());
     }

      

    对于Map容器,Map容器因为底层数据结构比较特殊

    第一种方法:我们需要使用Map对象调用entrySet().iterator()方法来获取迭代器。

    Map<Integer,String> map = new HashMap<>();	
    System.out.println("-----HashMap方法一:获得内部数组对象-------");
    for(Iterator<Entry<Integer,String>> it = map.entrySet().iterator();it.hasNext();) {
    	System.out.println(it.next());
    }
    

      

    第二种方法:获取HashMap的keySet,通过keySet()方法,然后通过得到集合获取遍历器,然后使用此遍历器遍历出key,通过Map的get方法得到value。

    System.out.println("-----HashMap方法二:获得keySet-------");
    for(Iterator<Integer> it = map.keySet().iterator();it.hasNext();) {
    	int key;
    	System.out.println("key="+(key = it.next())+" value="+map.get(key));
    }
    
    

      

    各容器遍历测试

    package _20191213;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    /**
     * 迭代器的使用
     * @author TEDU
     *
     */
    public class IteratorTest {
    	public static void main(String[] args) {
    		//调用遍历ArrayList方法
    		testArrayList();
    		//调用LinkedList
    		testLinkedList();
    		//调用testHashMap()
    		testHashMap();
    		//调用HashSet
    		testHashSet();
    	}
    	
    	/**
    	 * iterator遍历ArrayList 
    	 */
    	public static void testArrayList() {
    		List<String> myList = new ArrayList<>();
    		myList.add("谁");
    		myList.add("在");
    		myList.add("敲");
    		myList.add("打");
    		myList.add("我");
    		myList.add("窗");
    		System.out.println("-----ArrayList-------");
    		Iterator<String> it = myList.iterator();
    		while(it.hasNext()) {
    			System.out.println(it.next());
    		}
    	}
    	
    	/**
    	 * LinkedList的遍历
    	 */
    	public static void testLinkedList() {
    		LinkedList<String> ml = new LinkedList<>();
    		ml.add("suck");
    		ml.add("my");
    		ml.add("ass");
    		System.out.println("-----LinkedList-------");
    		Iterator<String> it = ml.iterator();
    		while(it.hasNext()) {
    			System.out.println(it.next());
    		}
    	}
    	/**
    	 * HashMap
    	 */
    	public static void testHashMap() {
    		Map<Integer,String> map = new HashMap<>();
    		map.put(1001,"张三");
    		map.put(1002,"李四");
    		map.put(1003,"王五");
    		System.out.println("-----HashMap-------");
    		for(Iterator<Entry<Integer,String>> it = map.entrySet().iterator();it.hasNext();) {
    			System.out.println(it.next());
    		}
    	}
    	/**
    	 * HashSet
    	 */
    	public static void testHashSet() {
    		Set<String> set = new HashSet<>(); 
    		set.add("you");
    		set.add("geek");
    		System.out.println("-----HashSet-------");
    		for(Iterator<String> it = set.iterator();it.hasNext();) {
    			System.out.println(it.next());
    		}
    	}
    }
    

      

  • 相关阅读:
    计算机学习—系统优化(1)
    B站Vue教学视频-个人随笔笔记-(031-040)
    B站Vue教学视频-个人随笔笔记-(021-030)
    B站Vue教学视频-个人随笔笔记-(011-020)
    B站Vue教学视频-个人随笔笔记-(001-010)
    Docker入门(三):容器(Containers)
    WinDBG符号路径设置
    Docker入门(二):安装/卸载
    Docker入门(一):简介
    CentOS下安装配置Samba服务器
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12033709.html
Copyright © 2011-2022 走看看