Java の連想配列
- Java で連想配列を使用する
- Java の連想配列の要約
- Java で連想配列を実装する
- Java で連想配列を作成する
- Java の連想配列に要素を追加する
- Java の連想配列の要素をトラバースする
-
Java 8 で
forEach()
メソッドを使用して連想配列の要素をトラバースする
連想配列は、要素のセットをキー
と値
のペアで格納する配列の一種です。これは、キーと値のコレクションであり、キーは一意であり、1つの値に関連付けられています。
連想配列から要素にアクセスする必要がある場合は、配列の名前を呼び出して、アクセスしたい値
のキーを渡す必要があります。
Java で連想配列を使用する
たとえば、ロール番号と学生のマークを格納する marks という名前の配列があります。
したがって、特定の学生のマークにアクセスする必要がある場合は、このマークのように呼び出すことができます。105
ここで、マークは配列の名前であり、105
は学生のロール番号であり、インデックス番号ではありません。Java 言語を使用している場合、配列では不可能です。
したがって、連想配列は Java をサポートしていませんが、HashMap
を使用して簡単に実現できます。Java は連想配列をサポートしていませんが、マップを使用して実装できます。
Java の連想配列の要約
HashMap<String, String> hashmap = new HashMap<>();
// method to add the key,value pair in hashmap
hashmap.put("Key1", "Value1");
hashmap.put("Key2", "Value2");
hashmap.put("Key3", "Value3");
// and many more...
// get the value 1 and 2
System.out.println(hashmap.get("Key1"));
System.out.println(hashmap.get("Key2"));
// and many more...
Java で連想配列を実装する
Java で連想配列を実装するために、Map インターフェースの実装クラスである HashMap
を使用しました。ステップバイステップで理解しましょう。
まず、HashMap
をインポートして初期化します。つまり、次のステートメントを使用して HashMap のインスタンスを作成します。
import java.util.HashMap;
HashMap<String, String> hashmap = new HashMap<>();
次に、put()
メソッドを使用して、キー値を HashMap
に追加します。
hashmap.put("Key1", "Value1");
entrySet()
メソッドを使用して HashMap
を Set に変換し、重複するキーを削除します。
Set<Map.Entry<String, String> > set = map.entrySet();
Set を必要な配列である ArrayList
に変換します。
List<Map.Entry<String, String>> list = new ArrayList<>(set);
Java で連想配列を作成する
この例では、HashMap
クラスを使用して、Java で連想配列を実装しました。
ほら、キーと値のペア形式のデータが含まれており、getKey()
メソッドを使用してキーにアクセスし、getValue()
メソッドを使用して値にアクセスしました。
import java.io.*;
import java.util.*;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, String> hashmap = new HashMap<>();
hashmap.put("Virat", "Batsman");
hashmap.put("Bumrah", "Bowler");
hashmap.put("Jadeja", "All-rounder");
hashmap.put("Pant", "Wicket-Keeper");
Set<Map.Entry<String, String>> s = hashmap.entrySet();
List<Map.Entry<String, String>> array = new ArrayList<>(s);
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i).getKey() + " is " + array.get(i).getValue());
}
}
}
出力:
Pant is Wicket-Keeper
Jadeja is All-rounder
Bumrah is Bowler
Virat is Batsman
すでに説明したように、そのキーは一意である必要があります。連想配列に同じキーを挿入すると、key-value
ペアの 1つが破棄されます。
次のコードに、2つの同じキーVirat
を挿入しました。以下の例を参照してください。
import java.io.*;
import java.util.*;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, String> hashmap = new HashMap<>();
hashmap.put("Virat", "Batsman");
hashmap.put("Bumrah", "Bowler");
hashmap.put("Jadeja", "All-rounder");
hashmap.put("Pant", "Wicket-Keeper");
hashmap.put("Virat", "Captain");
Set<Map.Entry<String, String>> s = hashmap.entrySet();
List<Map.Entry<String, String>> array = new ArrayList<>(s);
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i).getKey() + " is " + array.get(i).getValue());
}
}
}
出力:
Pant is Wicket-Keeper
Jadeja is All-rounder
Bumrah is Bowler
Virat is Captain
Java の連想配列に要素を追加する
put()
メソッドを使用して、マップ内の配列に要素を追加できます。同様に、remove()
メソッドを使用して配列から要素を削除できます。
size()
メソッドを使用して、配列のサイズを確認できます。
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, String> fruits = new HashMap<String, String>();
fruits.put("Apple", "Red");
fruits.put("Banana", "Yellow");
fruits.put("Guava", "Green");
fruits.put("Blackberries", "Purple");
System.out.println("The Size of fruits Map is : " + fruits.size());
// Remove Banana from the HashMap
fruits.remove("Banana");
// To find out the size of the Hashmap
System.out.println("The Size of fruits Map is : " + fruits.size());
// Check whether the key is present in the Hashmap or not
String fruit_key = "Apple";
if (fruits.containsKey(fruit_key)) {
System.out.println("The colour of " + fruit_key + " is: " + fruits.get(fruit_key));
} else {
System.out.println("There is no entry for the fruit of " + fruit_key);
}
}
}
出力:
The Size of fruits Map is : 4
The Size of fruits Map is : 3
The colour of Apple is: Red
Java の連想配列の要素をトラバースする
for-each
ループを使用して、連想配列をトラバースできます。HashMap
は java.util
パッケージに属しているため、foreach
ループを使用してその要素を反復処理できます。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, String> fruits = new HashMap<String, String>();
fruits.put("Apple", "Red");
fruits.put("Banana", "Yellow");
fruits.put("Guava", "Green");
fruits.put("Blackberries", "Purple");
System.out.println("The Size of fruits Map is : " + fruits.size());
for (Map.Entry element : fruits.entrySet()) {
String key = (String) element.getKey();
System.out.println(key + " : " + element.getValue());
}
}
}
出力:
The Size of fruits Map is : 4
Guava : Green
Apple : Red
Blackberries : Purple
Banana : Yellow
Java 8 で forEach()
メソッドを使用して連想配列の要素をトラバースする
Java 8 以降のバージョンを使用している場合は、forEach()
メソッドを使用して配列要素をトラバースできます。forEach()
メソッドには、引数として lambda
式が必要です。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, String> fruits = new HashMap<String, String>();
fruits.put("Apple", "Red");
fruits.put("Banana", "Yellow");
fruits.put("Guava", "Green");
fruits.put("Blackberries", "Purple");
System.out.println("The Size of fruits Map is : " + fruits.size());
fruits.forEach((k, v) -> System.out.println(k + " : " + v));
}
}
出力:
The Size of fruits Map is : 4
Guava : Green
Apple : Red
Blackberries : Purple
Banana : Yellow
このチュートリアルでは、Java が技術的に連想配列をサポートしていないことを学習しましたが、HashMap
を使用して簡単に実現できます。