Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การใช้งาน Java HashMap Class: คู่มือครบวงจร

ในโปรแกรมมิ่ง Data types ใช้จำแนกชนิดข้อมูล แต่ละชนิดเก็บต่างกัน และชนิดข้อมูลกำหนด operation ที่ทำได้

ใน Java คลาสหนึ่งที่สำคัญคือ Java HashMap class ส่วนหนึ่งของ Collections Framework ให้นักพัฒนาจัดเก็บข้อมูลด้วย Map data type (key-value pairs)

บทช่วยสอนนี้อธิบายพื้นฐาน HashMap การสร้าง และเมธอดหลัก พร้อมตัวอย่าง

Java Maps และ HashMap

Java Map interface จัดเก็บค่าแบบ key/value pairs Key = ค่า unique ที่เชื่อมกับ value เฉพาะ ใน Java Map ไม่มี duplicate keys ทุก key ต้อง map กับ value

โครงสร้าง key/value ให้เข้าถึง value ผ่าน key เช่น map มี key gbp value United Kingdom เรียก key gbp -> ได้ "United Kingdom"

HashMap class ใน Collections Framework ใช้ Map interface และ hash tables (เก็บ key-value items แบบพิเศษ)

ก่อนสร้าง HashMap ต้อง import:

import java.util.HashMap;

สร้าง HashMap

ไวยากรณ์:

HashMap<KeyType, ValueType> map_name = new HashMap<KeyType, ValueType>(capacity, loadFactor);

องค์ประกอบ:

  • HashMap: บอกว่าเป็น hashmap
  • <KeyType, ValueType>: ชนิดข้อมูล key และ value
  • map_name: ชื่อ hashmap
  • new HashMap<KeyType, ValueType>: เริ่มต้น hashmap ด้วยชนิดข้อมูลที่กำหนด
  • capacity: จำนวน entry สูงสุด (default 16) - optional
  • loadFactor: threshold ขยาย hash table (default 0.75 = 75%) - optional

ตัวอย่าง: ร้านแลกเปลี่ยนสกุลเงิน

โปรแกรมเก็บชื่อประเทศและรหัสสกุลเงินที่ให้บริการ เหมาะกับ HashMap เพราะมี 2 ค่าที่เกี่ยวข้อง: ชื่อประเทศ และ currency code

import java.util.HashMap; 
HashMap<String, String> currencyCodes = new HashMap<String, String>();

ประกาศ HashMap currencyCodes เก็บ String key และ String value พร้อมเพิ่มข้อมูล

เพิ่มรายการ (Add Items)

เมธอด put() ใช้เพิ่มค่าใน HashMap แบบ key/value

เพิ่ม GBP/United Kingdom และ USD/United States:

import java.util.HashMap; 
class CurrencyExchange { 
    public static void main(String[] args) { 
        HashMap<String, String> currencyCodes = new HashMap<String, String>(); 
        currencyCodes.put("GBP", "United Kingdom"); 
        currencyCodes.put("USD", "United States"); 
        System.out.println(currencyCodes); 
    } 
}

ผลลัพธ์: {GBP=United Kingdom, USD=United States}

สร้าง hashmap ใช้ put() เพิ่ม entry key GBP value United Kingdom พิมพ์ hashmap

เข้าถึงรายการ (Access an Item)

ใช้เมธอด get() รับพารามิเตอร์ 1 ตัว: key name ที่ต้องการ value

ดึงชื่อประเทศของ GBP:

String gbp = currencyCodes.get("GBP"); 
System.out.println(gbp);

ผลลัพธ์: United Kingdom

ลบรายการ (Remove an Item)

เมธอด remove() ลบ entry ตาม key พารามิเตอร์ 1 ตัว: key name

ลบ GBP:

currencyCodes.remove("GBP"); 
System.out.println(currencyCodes);

ผลลัพธ์: {USD=United States}

เพิ่มเติม: clear() ลบรายการทั้งหมด ไม่มีพารามิเตอร์ คืน HashMap ว่าง {}

แทนที่ค่าใน HashMap (Replace Elements)

เมธอด replace() แทนที่ value ของ key เดิม ด้วย value ใหม่ รับ 2 พารามิเตอร์: key ที่จะแทนที่, value ใหม่

แทนที่ "United Kingdom" -> "Great Britain" สำหรับ key GBP:

currencyCodes.replace("GBP", "Great Britain"); 
System.out.println(currencyCodes);

ผลลัพธ์: {GBP=Great Britain, USD=United States}

วนลูป HashMap (Iterate Through a HashMap)

HashMap มี 3 เมธอดสำหรับ iteration:

  • keySet(): วน keys
  • values(): วน values
  • entrySet(): วน keys และ values คู่กัน

วิธีง่ายสุด: ใช้ for-each loop

ตัวอย่าง: พิมพ์ค่า (values) ทั้งหมด

พิมพ์รายการสกุลเงินที่ร้านให้บริการ:

import java.util.HashMap; 
class CurrencyExchange { 
    public static void main(String[] args) { 
        HashMap<String, String> currencyCodes = new HashMap<String, String>(); 
        currencyCodes.put("GBP", "Great Britain"); 
        currencyCodes.put("USD", "United States"); 
        for(String value : currencyCodes.values()) { 
            System.out.println(value); 
        } 
    } 
}

ผลลัพธ์:

Great Britain
United States

for-each วน currencyCodes.values() พิมพ์แต่ละค่า บรรทัดใหม่

อยากวน keys แทน -> เปลี่ยน values() เป็น keySet() จะได้:

GBP
USD

สรุป

Java HashMap class จัดเก็บข้อมูลแบบ key/value collection structure เหมาะกับข้อมูล 2 ค่าที่เกี่ยวข้องกัน บทช่วยสอนนี้ครอบคลุม: สร้าง HashMap, put(), get(), remove(), clear(), replace(), iteration ด้วย keySet(), values(), entrySet() ตอนนี้คุณพร้อมทำงานกับ Java HashMaps อย่างมืออาชีพแล้ว!