Java では、Map の反復をさまざまな方法で実行できます。を使用してマップを直接反復処理できないことに注意してください。 イテレータ なぜなら、Map インターフェースは Collection の一部ではないからです。 Java のすべてのマップは実装されています 地図 インターフェース。 Java には次のタイプのマップがあります。
- ハッシュマップ
- ツリーマップ
- リンクされたハッシュマップ
マップはコレクションではありませんが、コレクション フレームワークの下で検討してください。したがって、Map は Collections インターフェイスを拡張しないインターフェイスです。
イテレーター
イテレータは、コレクションを反復処理するために使用されるインターフェイスです。これは、Java Collections Framework の列挙の代わりとなります。イテレータと列挙の違いは次のとおりです。
- Iterator はレガシー要素と非レガシー要素をトラバースできますが、Enumeration はレガシー要素のみをトラバースできます。
- Iterator はフェイルファストですが、Enumeration はフェイルファストではありません。
コレクションビュー
コレクション ビュー メソッドを使用すると、次の方法でマップをコレクションとして表示できます。
Map インターフェイスには、と呼ばれる小さなネストされたインターフェイスもあります。 マップエントリ 。コレクション ビューは、マップを反復処理する唯一の手段を提供します。
CSSを中央に配置するボタン
Iteratorインターフェースの使用
HashMap の反復の例
public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } }
出力:
Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi
keyset() メソッドと value() メソッドの使用
キーセット(): あ キーセット() の方法 ハッシュマップ クラスは、マップに含まれるキーの反復に使用されます。キーの Set ビューを返します。
構文
Set keyset()
値(): あ 値() の方法 ハッシュマップ クラスは、マップに含まれる値の反復に使用されます。値のコレクション ビューを返します。
JavaScript
構文
JSで寝る
Collection values()
例
import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } }
出力:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Map.entryメソッドの使用
Map.Entry はインターフェイスです。このクラスの要素を含むマップのコレクション ビューを返します。
map.entrySet() メソッドは、マップに含まれるマッピングの Set ビューを返します。マップの変更はセットにも反映され、その逆も同様です。また、対応するマッピングをマップから削除する要素の削除もサポートしています。
構文
Set<map.entry> entrySet() </map.entry>
例
Javaの挿入ソート
import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Cookies', 90.87f); map.put('Dry Fruits', 434.23f); map.put('Oats', 220.00f); map.put('Chocolate', 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println('Item: ' + entry.getKey() + ', Price: ' + entry.getValue()); } } }
出力:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
キーの反復と値の取得
例
次の例では、最初にキーを反復処理し、次に値を取得します。
import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Sumit', 'Singh'); map.put('Devesh', 'Mishra'); map.put('Rahul', 'Tiwari'); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println('Key: ' + name + ', Value: ' + lastname); } } }
出力:
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
forEach() メソッドの使用
の forEach() の方法 配列リスト すべての要素が処理されるまで、Iterable の各要素に対してアクションを実行するために使用されます。
構文
public void forEach(Consumer action)
このメソッドはアクション (要素ごとに実行されるアクション) をパラメーターとして受け取ります。何も返されません。それは投げます NullPointerException 指定されたアクションが null の場合。
例
a b c 数字
次の例では、forEach() メソッド内でラムダ式を使用して、マップの各要素を出力しています。
import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put('TCS', '0 billion'); map.put('Wipro', '.5 billion'); //iteration over map using forEach() method map.forEach((k,v) -> System.out.println('Company: '+ k + ', Net worth: ' + v)); } }
出力:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion