Java 中的關聯陣列
- 在 Java 中使用關聯陣列
- Java 中關聯陣列的摘要
- 在 Java 中實現關聯陣列
- 在 Java 中建立關聯陣列
- 在 Java 中將元素新增到關聯陣列
- 遍歷 Java 中關聯陣列的元素
-
在 Java 8 中使用
forEach()
方法遍歷關聯陣列的元素
關聯陣列是一種將元素集儲存在鍵
和值
對中的陣列型別。它是鍵和值的集合,其中鍵是唯一的並且與一個值相關聯。
如果我們必須訪問關聯陣列中的元素,我們必須呼叫陣列的名稱並傳遞鍵我們要訪問的值
。
在 Java 中使用關聯陣列
例如,我們有一個名為標記的陣列,用於儲存卷號和學生的分數。
因此,如果我們必須訪問特定學生的標記,那麼我們可以像這樣呼叫標記 105
,其中標記是陣列的名稱,105
是學生的卷號,而不是索引號如果我們使用 Java 語言,則不可能在陣列中。
因此關聯陣列不支援 Java,但我們可以使用 HashMap
輕鬆實現。Java 不支援關聯陣列,但可以使用 Map 來實現。
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
正如我們已經討論過的,該鍵應該是唯一的。如果我們在關聯陣列中插入相同的鍵,它將丟棄鍵值
對之一。
我們在下面的程式碼中插入了兩個相同的鍵 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
輕鬆實現它。