JavaでHashMapを反復するにはどうすればよいですか?
HashMap は Java のコレクションの一部であり、データを (Key, Value) ペアに格納して別のタイプのインデックスでアクセスすることにより、Java の Map インターフェイスの基本的な実装を提供します。 1 つのオブジェクトは、別のオブジェクト (値) へのキー (インデックス) としてリストされます。重複キーを挿入しようとすると、対応するキーの要素が置き換えられます。このクラスとそのメソッドを使用するには、インポートする必要があります java.util.HashMap パッケージまたはそのスーパークラス。
HashMap を反復処理する方法は数多くありますが、そのうちの 5 つを以下に示します。
- HashMap を反復処理する エントリーセット イテレータを使用します。
- HashMap を反復処理する キーセット イテレータを使用します。
- を使用して HashMap を反復します for-each ループ 。
- ラムダ式を使用して HashMap を反復処理します。
- を使用して HashMap をループします。 ストリームAPI 。
方法 1: for ループを使用して HashMap を反復処理します。 for ループを介して HashMap を反復して使用する getValue() そして getKey() 機能。
実装: 以下のコードでは、 エントリーセット() マップされた要素のセット ビューを返すために使用されます。以下のコードから:
- set.getValue() を使用してセットから値を取得します。
- set.getKey() を使用してセットからキーを取得します。
ジャワ
// Java Program to Iterate over HashMap> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> // Class for iterating HashMap using for loop> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating a HashMap> > Map foodTable> > => new> HashMap();> > // Inserting elements to the adobe HashMap> > // Elements- Key value pairs using put() method> > foodTable.put(> 'A'> ,> 'Angular'> );> > foodTable.put(> 'J'> ,> 'Java'> );> > foodTable.put(> 'P'> ,> 'Python'> );> > foodTable.put(> 'H'> ,> 'Hibernate'> );> > // Iterating HashMap through for loop> > for> (Map.Entry set :> > foodTable.entrySet()) {> > // Printing all elements of a Map> > System.out.println(set.getKey() +> ' = '> > + set.getValue());> > }> > }> }> |
出力
P = Python A = Angular H = Hibernate J = Java
方法 2: forEach を使用して HashMap を反復処理します。 2 番目のメソッドでは、キーと値のペアを反復する forEach 関数を使用します。
ジャワ
// Java Program to Iterate over HashMap> // Iterating HashMap using forEach> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating hash map> > Map charType> > => new> HashMap();> > // Inserting data in the hash map.> > charType.put(> 'J'> ,> 'Java'> );> > charType.put(> 'H'> ,> 'Hibernate'> );> > charType.put(> 'P'> ,> 'Python'> );> > charType.put(> 'A'> ,> 'Angular'> );> > // Iterating HashMap through forEach and> > // Printing all. elements in a Map> > charType.forEach(> > (key, value)> > ->System.out.println(key +>> ' = '> + value));> > }> }> |
出力
P = Python A = Angular H = Hibernate J = Java
方法 3: イテレーターを使用して HashMap を反復処理します。 このメソッドでは、以下の Java プログラムに示すように、反復子を使用して HashMap 内のマップされた各ペアを反復処理しています。
例:
ジャワ
// Java Program to Iterate over HashMap> // Using Iterator> // Importing classes from java.util package> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] arguments)> > {> > // Creating Hash map> > Map intType> > => new> HashMap();> > // Inserting data(Key-value pairs) in hashmap> > intType.put(> 1> ,> 'First'> );> > intType.put(> 2> ,> 'Second'> );> > intType.put(> 3> ,> 'Third'> );> > intType.put(> 4> ,> 'Fourth'> );> > // Iterator> > Iterator new_Iterator> > = intType.entrySet().iterator();> > // Iterating every set of entry in the HashMap> > while> (new_Iterator.hasNext()) {> > Map.Entry new_Map> > = (Map.Entry)> > new_Iterator.next();> > // Displaying HashMap> > System.out.println(new_Map.getKey() +> ' = '> > + new_Map.getValue());> > }> > }> }> |
1 = First 2 = Second 3 = Third 4 = Fourth
方法 4: ラムダ式を使用して HashMap を反復処理する
ラムダ式は、パラメータを受け取り、値を返す短いコード ブロックです。ラムダ式はメソッドに似ていますが、名前は必要なく、メソッドの本体に直接実装できます。最も単純なラムダ式には、単一のパラメーターと式が含まれます。
parameter ->式
例:
ジャワ
// Iterating HashMap using Lambda Expressions- forEach()> // Importing Map and HashMap classes> // from java.util package> import> java.util.HashMap;> import> java.util.Map;> // Class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating hash map> > Map charType> > => new> HashMap();> > // Inserting elements(key-value pairs)> > // in the hash map ( Custom inputs)> > charType.put(> 'A'> ,> 'Apple'> );> > charType.put(> 'B'> ,> 'Basketball'> );> > charType.put(> 'C'> ,> 'Cat'> );> > charType.put(> 'D'> ,> 'Dog'> );> > // Iterating through forEach and> > // printing the elements> > charType.forEach(> > (key, value)> > ->System.out.println(key +>> ' = '> + value));> > }> }> |
出力
A = Apple B = Basketball C = Cat D = Dog
方法 5: Stream APIを使用してHashMapをループする
以下の例では、ストリーム API を使用して HashMap を反復処理します。
ストリーム API は、オブジェクトのコレクションを処理するために使用されます。
ストリームは元のデータ構造を変更せず、パイプラインメソッドに従って結果を提供するだけです
手順:
- 最初の呼び出し エントリセット().stream() このメソッドは Stream オブジェクトを返します。
- 次 各メソッドごとに これは、entrySet() 内の入力オブジェクトを反復します。以下のコードを参照してください。
例:
ジャワ
// Java Program to Iterate over HashMap> // Loop through a HashMap using Stream API> // Importing classes from> // package named 'java.util'> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> // HashMap class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] arguments)> > {> > // Creating hash map> > Map intType> > => new> HashMap();> > // Inserting data(key-value pairs) in HashMap> > // Custom inputs> > intType.put(> 1> ,> 'First'> );> > intType.put(> 2> ,> 'Second'> );> > intType.put(> 3> ,> 'Third'> );> > intType.put(> 4> ,> 'Fourth'> );> > // Iterating every set of entry in the HashMap, and> > // printing all elements of it> > intType.entrySet().stream().forEach(> > input> > ->System.out.println(input.getKey() +>> ' : '> > + input.getValue()));> > }> }> |
出力
1 : First 2 : Second 3 : Third 4 : Fourth