HasMapのトラバーサルメソッド【7種類】

HashMap の 7 つのトラバーサル メソッド

学習ノートは他の人をより良く助けることができます~
オリジナルのHashMap の 7 つのトラバース メソッドとパフォーマンス分析を読むことをお勧めします。「訂正」ここに画像の説明を挿入
注:1)尽量使用 entrySet 来实现 Map 集合的遍历,性能更高
EntrySet を走査するときは、取得した ley と value を直接取得できるエントリ ペアに直接入れます
が、KeySet は走査時に map.get(key) を使用します。これは、Map コレクションを再度走査してキーをクエリするのと同じです。したがって、対応する値の効率は低くなります。
2)Iterator迭代器 和 forEach遍历的效率相差不大

1. 各メソッドの簡潔なコードを以下に示します。

注: 次のエントリはInteger:Stringの形式です。

  1. イテレータ反復子のトラバーサル - EntrySet
    Iterator<Map.Entry<Integer, String>> iterator = map.EntrySet().iterator();
    while(iterator.hasNext()){
          
          
    	Map.Entry<Integer, String> entry = ietrator.next();
    	System.out.println("key--" + enrty.getKey());	
    	System.out.println("value--" + enrty.getValue());	
    }
    
  2. イテレータ イテレータ トラバーサル - KeySet
    Iterator<Integer> iterator = map.KeySet().iterator();
    while(iterator.hasNext()){
          
          
    	Integer key = iterator.next();
    	System.out.println("key--" + key);
    	System.out.println("value--" + map.get(key));
    }
    
  3. 走査ごと - EntrySet
    for(Map.Entry<Integer, String> entry : map.EntrySet()){
          
          
    	 System.out.println("key--" + entry.getKey());
    	 System.out.println("value--" + entry.getValue());
    }
    
  4. 各トラバーサル - KeySet
    for(Integer key : map.KeySet()){
          
          
    	System.out.println("key--" + key);
    	System.out.println("value--" + map.get(key));
    }
    
  5. ラムダ式トラバーサル (JDK1.8+)
    map.forEach((key, value)->{
          
          
    	System.out.println("key--" + key);
        System.out.println("value--" + value);
    });
    
  6. ストリーム API トラバーサル (JDK1.8+) - シングルスレッド stream()
    map.entrySet().stream().forEach((entry)->{
          
          
    	System.out.println("key--" + entry.getKey());
    	System.out.println("value--" + entry.getValue());
    });
    
  7. ストリーム API トラバーサル (JDK1.8+) - マルチスレッドのParallelStream()
    map.entrySet().parallelStream().forEach((entry) -> {
          
          
        System.out.println("key--" + entry.getKey());
    	System.out.println("value--" + entry.getValue());
    });
    

おすすめ

転載: blog.csdn.net/weixin_45463572/article/details/130439044