集合的遍历

作者: 蜗先生 | 来源:发表于2017-08-07 16:12 被阅读35次

    集合的遍历一共有三种,普通for遍历,增强for遍历,迭代器遍历,增强for和迭代器,每种遍历的适用情况不同,增强for底层就是用迭代器实现的。

    普通for:适用于有索引的集合,例如List体系的集合,Key是Integer类型的Map集合,数组。遍历过程可增删改查。
    增强for:适用与Collection体系的集合,也可用于数组,遍历过程一般不可增删改查。
    迭代器:适用于Collection体系的集合,不能用与数组,可增删改查。

    1.普通for

    1)对List集合遍历

    List<String> list = new ArrayList<String>( );
    list.add("Hello");
    list.add("world");
    for(int i = 0; i< list.size();i++){
        System.out.println(list.get(i));
    }
    

    2)对Map集合遍历

    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "hello");
    map.put(2, "world");
    for(int i = 1; i <= map.size();i++){
        System.out.println(i+ ":"+map.get(i));
    }
    
    2.增强for

    1)对List集合遍历

    List<String> list = new ArrayList<String>( );
    list.add("Hello");
    list.add("world");
    for(String s;list){
        System.out.println(s);
    }
    

    2)Map集合转换成Set集合遍历

    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "hello");
    map.put(2, "world");
    Set<Map.Entry<Integer,String>> set = map.entrySet();
    for(Map.Entry<Integer,String> en:set){
        System.out.println(en.getKey()+":"+en.getValue());
    }
    
    3.迭代器

    1)对List集合遍历

    List<String> list = new ArrayList<String>( );
    list.add("Hello");
    list.add("world");
    Iterator<String> it = list.iterator();    
    while(it.hasNext()){
        System.out.println(it.next());
    }
    

    2)Map集合转换成Set集合遍历

    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "hello");
    map.put(2, "world");
    Set<Map.Entry<Integer,String>> set = map.entrySet();
    while(it.hasNext()){
        Map.Entry<Integer,String> en = it.next();
        System.out.println(en.getKey()+":"+en.getValue());
    }
    
    增删改查的方法

    1)普通for:根据索引增删改查。
    2)迭代器:根据迭代器方法增删改查(ListIterator)。

    迭代器或者增强for遍历过程中通过集合的方法增删,也就是改变集合的长度,会出现ConcurrentModificationException(并发修改异常),所以迭代器遍历过程中只能用迭代器的方法增删,ListIterator中的add()、remove()方法,Iterator只有remove(),ListIterator只能是List体系的集合使用。

    相关文章

      网友评论

        本文标题:集合的遍历

        本文链接:https://www.haomeiwen.com/subject/ldfalxtx.html