リストコレクションとマップコレクションのいくつかの走査方法

リストコレクションの走査

1つは、Itetatorインターフェースをトラバースします。

    イテレータは主にコレクション内の要素をトラバースするために使用され、イテレータ
インスタンスとも呼ばれます。

public class Exception01 {
    
    
    public static void main(String[] args) {
    
    
        //创建ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        Iterator<String> iterator = arrayList.iterator();//获得Iterator对象
        while(iterator.hasNext()){
    
    //判断该集合是否有下一个元素
            String next = iterator.next();//如果有取出来
            System.out.println(next);//打印输出
        }
    }
}

イテレータを使用してコレクションの要素を反復処理するときに、コレクションオブジェクトのremove()メソッドを呼び出して要素を削除すると、次の例のように例外が発生します。

public class Exception01 {
    
    
    public static void main(String[] args) {
    
    
        //创建ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        Iterator<String> iterator = arrayList.iterator();//获得Iterator对象
        while(iterator.hasNext()){
    
    //判断该集合是否有下一个元素
            String next = iterator.next();//如果有取出来
            if ("张三".equals(next)){
    
    
                arrayList .remove(next);//此处的remove()方法是集合内部的方法
            }
            System.out.println(next);//打印输出
        }

    }
}

演算結果:ここに画像の説明を挿入
この問題を解決するには、イテレータのremove()を呼び出すだけです。上記のコードarrayList.remove(next);をiterator.remove();に置き換えて、正常に実行します。

2、foreachループトラバーサル

    jdk1.5によって提供されるforeachループは、より簡潔なforループであり、拡張forループとも呼ばれます。

public class Exception01 {
    
    
    public static void main(String[] args) {
    
    
        //创建ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        //for(容器元素的类型 临时变量:容器变量){}
        for (String arr : arrayList) {
    
    
            System.out.println(arr);
        }
    }
}

マップコレクションのトラバーサル

方法1

    最初にすべてのキーをトラバースしてから、キーに従って値を取得します。
例:

public class Exception05 {
    
    
    public static void main(String[] args) {
    
    
        //创建一个map
        Map hashMap = new HashMap();
        //通过put(key, value)方法存储
        hashMap.put("name1", "张一");
        hashMap.put("name2", "张二");
        hashMap.put("name3", "张三");
        hashMap.put("name4", "张四");
        Set keySet = hashMap.keySet();//获得键的集合
        Iterator iterator = keySet.iterator();//迭代集合
        while (iterator.hasNext()){
    
    //判断是否有下一个key
            Object key = iterator.next();//取出key
            Object value = hashMap.get(key);//根据key取值
            System.out.println(key +":"+ value);
        }
    }
}

方法2

マップコレクションにはvalues()メソッドが用意されており、マップに保存されているすべての値のCollertionコレクションを直接取得できます。
例:

public class Exception05 {
    
    
    public static void main(String[] args) {
    
    
        //创建一个map
        Map hashMap = new HashMap();
        //通过put(key, value)方法存储
        hashMap.put("name1", "张一");
        hashMap.put("name2", "张二");
        hashMap.put("name3", "张三");
        hashMap.put("name4", "张四");
        Collection values = hashMap.values();
        Iterator iterator = values.iterator();
        while (iterator.hasNext()){
    
    
            Object value = iterator.next();
            System.out.println(value);
        }
    }
}

方法3

    forループを介してマップコレクションのトラバーサルを実現します

public class Exception05 {
    
    
    public static void main(String[] args) {
    
    
        //创建一个map
        Map<String,String> hashMap = new HashMap<String,String>();
        //通过put(key, value)方法存储
        hashMap.put("name1", "张一");
        hashMap.put("name2", "张二");
        hashMap.put("name3", "张三");
        hashMap.put("name4", "张四");
       for (Map.Entry<String,String> map : hashMap.entrySet()){
    
    
           String key = map.getKey();
           String value = map.getValue();
           System.out.println(key + ":" + value);
       }
    }
}

いい加減にして!

おすすめ

転載: blog.csdn.net/qq_42494654/article/details/109609787