首頁  >  文章  >  Java  >  Java 中的關聯數組

Java 中的關聯數組

王林
王林原創
2024-08-30 15:28:33544瀏覽

關聯數組以(鍵,值)對的形式儲存元素集。關聯數組包含唯一的鍵和值的集合,將每個鍵與單一值相關聯。 java中的關聯數組資料結構有利於廣泛的應用。與 Perl 和 PHP(使用雜湊變數)一樣,其他程式語言也實作了使用關聯數組資料結構的功能。由於關聯數組以(鍵,值)對的形式儲存元素,因此要存取關聯數組中的元素,我們需要呼叫數組的名稱和密碼(我們要存取其值)。

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

例如,一個陣列(名稱為分數)儲存學生的學號和分數。要存取特定學生的分數,我們應該將此稱為marks[102],其中marks是一個數組名稱,而102是學生的rollno,而不是索引號,這在java.lang.String數組中是不可能的。因此,關聯數組在技術上在java中不支持,但可以使用java.util.HashMap類別實例的形式來實現。

文法:

Map <String, String> map = new HashMap <String, String>( ); // creates Map where keys and values of string type
//method to store elements
map.put( "key1", "value1" );
map.put( "key2", "value2" );
// etc
// method to access value
map.get( "key1" ); // returns "value1" as output

如何在 Java 中建立關聯數組?

  • Java 提供了 Map 類別或 HashMap,它可以用作陣列類型。映射 不引用索引(例如,1、2、3、4、5 等),而是引用數組的物件或引用鍵。因此地圖可以用作關聯數組的替代方案。
  • 您可以使用 put 方法將元素新增至映射中的陣列。要存取元素,可以使用 get 方法。如果要存取陣列的所有值,可以使用 keySet 函數。另外,我們可以使用remove函數從map中刪除元素並取得陣列的大小;可以使用 size 方法(如陣列中的 length 函數所使用的)。簡而言之,映射將值與鍵關聯(連結)。

關聯數組的優點

使用關聯數組,我們可以將有意義的鍵分配給數組元素的值,保存更多元素,並將字串作為鍵分配給數組的元素。

在 Java 中實作關聯數組的範例

我們透過下面的範例java程式碼來理解上述方法。要建立地圖,我們需要匯入允許使用地圖的實用程式。因此我們將導入 Map 和 HashMap 實用程式。以下是 Java 中實作關聯數組的範例:

範例#1

遍歷關聯數組的各種方法

代碼:

import java.util.HashMap;
public class Demo {
public static void main(String[] args ) {
HashMap <String, String> capitals = new HashMap <String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
// Remove an element from the HashMap
capitals.remove("United Kingdom");
// To display size of the hashtmap
System.out.println("The Size of capitals Map is : " + capitals.size());
// Check the existence of key in the Hashmap
String key = "India";
if (capitals.containsKey( key )) {
System.out.println("The capital of " + key + " is: " + capitals.get( key ));
} else {
System.out.println("There is no entry for the capital of " + key);
}
}
}

輸出:

Java 中的關聯數組

範例#2

使用迭代器方法遍歷關聯數組

代碼:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
Iterator i = capitals.entrySet().iterator();
// Iterate through the hashmap
while (i.hasNext()) {
Map.Entry ele = (Map.Entry)i.next();
System.out.println(ele.getKey() + " : " + ele.getValue());
}
}
}

輸出:

Java 中的關聯數組

範例 #3

使用 for-each 迴圈遍歷關聯數組

代碼:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
for (Map.Entry ele : capitals.entrySet()) {
String key = (String)ele.getKey();
System.out.println(key + " : " + ele.getValue());
}
}
}

輸出:

Java 中的關聯數組

範例#4

使用 hashmap 的 forEach( ) 方法遍歷關聯陣列

代碼:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
capitals.forEach((k, v) -> System.out.println(k + " : " + v ));
}
}

輸出:

Java 中的關聯數組

結論

簡單來說,java中的關聯數組將元素的集合儲存在一個鍵中;關聯數組中的值對是唯一鍵和值的集合,其中每個鍵與一個值關聯。我們可以使用 hashMap 內建的 java 類別來實作關聯數組,如上面的範例所示。

以上是Java 中的關聯數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn