几种list循环的方法

来源:互联网 发布:数据库建模培训 编辑:程序博客网 时间:2024/05/20 20:57

List

  List<Map<String, String>> maps = new ArrayList<>();        Map<String, String> ccc;        for (int i = 0; i < 10; i++) {            ccc = new HashMap<>();            ccc.put(i + "", i * 1111 + "");            maps.add(ccc);        }        System.out.println("=============");        // for (Map<String, String> mapString : maps) {        // for (String str : mapString.keySet()) {        // System.out.println(mapString.get(str));        // }        // }        System.out.println("+++++++++++++++++++++=");        for (Map<String, String> mapString : maps) {            for (String a : mapString.values()) {                System.out.println(a.toString());            }        }        System.out.println("----------------------------");        for (Map<String, String> map : maps) {            Iterator<Map.Entry<String, String>> mapIterator = map.entrySet().iterator();            while (mapIterator.hasNext()) {                Map.Entry<String, String> m = mapIterator.next();                System.out.println(m.getKey() + "   " + m.getValue());            }        }        System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");        Iterator<Map<String, String>> mapIterator = maps.iterator();        while (mapIterator.hasNext()) {            Map<String, String> a = mapIterator.next();            for (String str : a.keySet()) {                System.out.println(a.get(str));            }        }        System.out.println("(()()()()()()))()()()()()()()()()");


‘集中常见的 循环方法的时间:×(for foreach 和 Iterator 三种对比)
有兴趣的可以运行,查看时间对比;

        List<String> list = new ArrayList<String>();        Set<String> set = new HashSet<String>();        for (int i = 0; i < 10000; i++) {            list.add("a" + i);        }        long t1 = 0L, t2 = 0L;        t1 = System.currentTimeMillis();        for (String s : list) {            set.add(s);        }//        for (String v : list) {//            System.out.print(v.toString());//        }        t2 = System.currentTimeMillis();        System.out.println();        System.out.println("forEach遍历的时间为:" + (t2 - t1) + "mm");        //// two        t1 = System.currentTimeMillis();        for (int i = 0; i < list.size(); i++) {            set.add(list.get(i));        }//        for (int i = 0; i < list.size(); i++) {//            System.out.print(list.get(i));//        }        t2 = System.currentTimeMillis();        System.out.println();        System.out.println("size遍历的时间为:" + (t2 - t1) + "mm");        //// three        t1 = System.currentTimeMillis();        Iterator<String> iterator = list.iterator();        while (iterator.hasNext()) {            set.add((String) iterator.next());        }//        Iterator<String> iterator1 = list.iterator();//        while (iterator1.hasNext()) {//            System.out.print(iterator1.next());//        }        t2 = System.currentTimeMillis();        System.out.println();        System.out.println("iterator遍历的时间为:" + (t2 - t1) + "mm");        System.out.println("--=-==========================");

注意:使用迭代容易出现java.util.NoSuchElementException的错误,所有使用迭代要遍历对next()的重复使用,要不然会出现java.util.NoSuchElementException的错误。

0 0
原创粉丝点击