总结下List和Map遍历方式(日常总结)

一.Map  

  public static void main(String[] args) {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(1, 2);
        map.put(3, 4);
        //1.键值一起取entrySet
        for (Map.Entry<Integer, Integer> entry : map.entrySet()){
        System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        //2.for 键keySet 值values 分开取
        for (Integer key : map.keySet()){
            System.out.println("key = " + key);
        }
        for(Integer value : map.values()){
            System.out.println("value = " + value);
        }
        //3.Iterator 遍历
        Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
        while(entries.hasNext()){
            Map.Entry<Integer, Integer> entry = entries.next();
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        //4.Iterator 遍历 不使用泛型
        Iterator entries1 = map.entrySet().iterator();
        while(entries1.hasNext()){
            Map.Entry<Integer, Integer> entry = (Map.Entry<Integer, Integer>) entries1.next();
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        //5.键值查找
        for (Integer key : map.keySet()){
            System.out.println("key = " + key + ", value = " + map.get(key));
        }
        //6.Lambda表达式 (Java8特性,性能比entrySet低,不建议使用)
        map.forEach((key, value) -> {
            System.out.println(key + ":" + value);
        });
    }

总结:


1.只是获取key,value,用keySet,values方式
2.同时获取key和value,用entrySet
3.foreach比Iterator的写法看起来更简洁,但用foreach遍历map时,如果改变其大小,会报错,但如果只是删除元素,可以使用Iterator的remove方法删除元素
4.如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。

二.List

public class Demo {

 public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        //1.for循环
        for (Integer Integer : list) {
            System.out.println(Integer);
        }
        //2.size()的for,对于数组实现的arrayList比较快
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        //3.Iterator迭代器
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            Integer integer = (Integer)iterator.next();
            System.out.println(integer);
        }
    }
}


     

猜你喜欢

转载自blog.csdn.net/lcgoing/article/details/83989403
今日推荐