ในการเขียนโปรแกรม ชนิดข้อมูลใช้เพื่อจำแนกประเภทข้อมูลเฉพาะ ข้อมูลแต่ละประเภทจะถูกจัดเก็บในลักษณะที่แตกต่างกัน และชนิดข้อมูลที่เก็บค่าไว้จะเป็นตัวกำหนดการดำเนินการที่สามารถดำเนินการกับค่านั้นได้
เมื่อคุณทำงานใน Java คลาสหนึ่งที่คุณอาจพบคือคลาส Java HashMap คลาสนี้เป็นส่วนหนึ่งของเฟรมเวิร์กการรวบรวมและอนุญาตให้นักพัฒนาจัดเก็บข้อมูลโดยใช้ประเภทข้อมูลแผนที่
บทช่วยสอนนี้จะกล่าวถึงพื้นฐานของ Java HashMaps วิธีสร้าง HashMap และสำรวจวิธีการหลักที่สามารถใช้ได้เมื่อทำงานกับคลาส HashMap บทความนี้จะอ้างอิงถึงตัวอย่างเพื่อให้เราสามารถอธิบายคลาส HashMap ได้ลึกซึ้งยิ่งขึ้น
แผนที่ Java และ HashMap
อินเทอร์เฟซ Java Map ใช้เพื่อเก็บค่าแผนที่ในคู่คีย์/ค่า คีย์คือค่าที่ไม่ซ้ำกันซึ่งเชื่อมโยงกับค่าเฉพาะ ใน Java แผนที่ต้องไม่มีคีย์ที่ซ้ำกัน และแต่ละคีย์ต้องเชื่อมโยงกับค่าเฉพาะ
โครงสร้างคีย์/ค่าที่นำเสนอโดย Map ช่วยให้คุณเข้าถึงค่าต่างๆ ตามคีย์ได้ ดังนั้น หากคุณมีแผนที่ที่มีรหัส gbp และค่า United Kingdom เมื่อคุณอ้างอิงคีย์ gbp ค่า “สหราชอาณาจักร” จะถูกส่งกลับ
คลาส HashMap เป็นส่วนหนึ่งของเฟรมเวิร์กคอลเลคชันและอนุญาตให้คุณจัดเก็บข้อมูลโดยใช้อินเทอร์เฟซแผนที่และตารางแฮช ตารางแฮชคือคอลเล็กชันพิเศษที่ใช้เก็บรายการคีย์/ค่า
ก่อนที่เราจะสามารถสร้าง HashMap ได้ เราต้องนำเข้าแพ็คเกจ HashMap ก่อน นี่คือวิธีที่เราทำได้ในโปรแกรม Java:
import java.util.hashmap;
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ตอนนี้เราได้นำเข้าแพ็คเกจ HashMap แล้ว เราสามารถเริ่มสร้าง HashMaps ใน Java ได้
สร้าง HashMap
ในการสร้าง HashMap ใน Java เราสามารถใช้ไวยากรณ์ต่อไปนี้:
HashMap<KeyType, ValueType> map_name = new HashMap<KeyType, ValueType>(capacity, loadFactor);
แบ่งสิ่งนี้ออกเป็นองค์ประกอบพื้นฐาน:
- HashMap ใช้เพื่อบอกรหัสของเราว่าเรากำลังประกาศแฮชแมป
เก็บประเภทข้อมูลสำหรับคีย์และค่าตามลำดับ - map_name เป็นชื่อของ hashmap ที่เราได้ประกาศไว้
- HashMap ใหม่
บอกให้โค้ดของเราเริ่มต้น HashMap ด้วยประเภทข้อมูลที่เราได้ระบุไว้ - ความจุ บอกรหัสของเราว่าสามารถจัดเก็บได้กี่รายการ โดยค่าเริ่มต้น ค่านี้จะตั้งไว้ที่ 16 (ไม่บังคับ)
- loadFactor บอกรหัสของเราว่าเมื่อตารางแฮชของเราถึงความจุที่แน่นอน ควรสร้างตารางแฮชใหม่ที่มีขนาดเป็นสองเท่าของตารางแฮชดั้งเดิม โดยค่าเริ่มต้น ค่านี้จะตั้งไว้ที่ 0.75 (หรือความจุ 75%) (ไม่บังคับ)
สมมติว่าเรากำลังสร้างโปรแกรมสำหรับธุรกิจแลกเปลี่ยนสกุลเงินท้องถิ่น พวกเขาต้องการสร้างโปรแกรมที่เก็บชื่อประเทศและรหัสสกุลเงินที่พวกเขาเสนอบริการแลกเปลี่ยน การใช้ HashMap ถือเป็นความคิดที่ดีในการจัดเก็บข้อมูลนี้ เนื่องจากเรามีสองรายการที่ต้องการจัดเก็บไว้ด้วยกัน ได้แก่ ชื่อประเทศและรหัสสกุลเงิน
นี่คือรหัสที่เราจะใช้เพื่อสร้าง HashMap เพื่อจุดประสงค์นี้:
import java.util.HashMap; HashMap<String, String> currencyCodes = new HashMap<String, String>();
ในตัวอย่างนี้ เราได้ประกาศ HashMap ชื่อ currencyCodes ซึ่งเก็บค่าสตริงสองค่า ตอนนี้เรามี HashMap แล้ว เราสามารถเริ่มเพิ่มรายการและจัดการเนื้อหาได้
เพิ่มรายการ
คลาส HashMap มีวิธีการมากมายที่สามารถใช้ในการจัดเก็บและจัดการข้อมูล ใช้เมธอด put() เพื่อเพิ่มค่าให้กับ HashMap โดยใช้โครงสร้างคีย์/ค่า
กลับไปที่การแลกเปลี่ยนเงินตรา สมมติว่าเราต้องการเพิ่มรายการ GBP /United Kingdom ลงในโปรแกรมของเราซึ่งจะเก็บค่าสกุลเงินสำหรับสหราชอาณาจักร GBP คีย์ถูกแมปกับ United Kingdom ค่าในตัวอย่างนี้ เราสามารถทำได้โดยใช้รหัสนี้:
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);
}
}
ในโค้ดของเรา เราเริ่มต้นแฮชแมปชื่อ currencyCodes จากนั้นเราใช้เมธอด put() เพื่อเพิ่มรายการลงในแมปแฮช รายการนี้มีคีย์ GBP และค่า United Kingdom . จากนั้นเราพิมพ์ค่าของ HashMap ซึ่งคืนค่าต่อไปนี้:
{GBP=United Kingdom,USD=United States}
อย่างที่คุณเห็น ตอนนี้ HashMap ของเรามีค่าสองค่า:GBP=สหราชอาณาจักร และ USD=สหรัฐอเมริกา
เข้าถึงรายการ
ในการเข้าถึงรายการใน HashMap คุณสามารถใช้เมธอด get() get method ยอมรับหนึ่งพารามิเตอร์:ชื่อคีย์สำหรับค่าที่คุณต้องการดึงข้อมูล
สมมติว่าเราต้องการเรียกชื่อประเทศที่เกี่ยวข้องกับ GBP เราสามารถทำได้โดยใช้รหัสนี้:
…
String gbp = currencyCodes.get("GBP");
System.out.println(currencyCodes);
…
รหัสของเราส่งคืน:สหราชอาณาจักร
Remove an Item
วิธีการลบ () ใช้เพื่อลบรายการออกจาก HashMap remove() ยอมรับหนึ่งพารามิเตอร์:ชื่อของคีย์ที่มีรายการที่คุณต้องการลบ
สมมติว่าเราต้องการลบ GBP จาก HashMap ของเรา เราสามารถทำได้โดยใช้รหัสนี้:
…
currencyCodes.remove("GBP");
System.out.println(currencyCodes);
…
เมื่อเรารันโค้ด GBP ถูกลบออกจาก HashMap และมีการตอบกลับดังต่อไปนี้:{USD=United States}
นอกจากนี้ยังใช้วิธีการ clear() เพื่อลบรายการทั้งหมดออกจาก HashMap clear() ไม่ยอมรับพารามิเตอร์ใด ๆ นี่คือตัวอย่างของวิธีการ clear() ในการใช้งานจริง:
… currencyCodes.clear(); System.out.println(currencyCodes); …
รหัสของเราส่งคืน HashMap ที่ว่างเปล่า: {} .
แทนที่องค์ประกอบ HashMap
วิธีการแทนที่ () ใช้เพื่อแทนที่ค่าที่เกี่ยวข้องกับคีย์เฉพาะด้วยค่าใหม่ แทนที่ () ยอมรับสองพารามิเตอร์:คีย์ของค่าที่คุณต้องการแทนที่และค่าใหม่ที่คุณต้องการแทนที่ค่าเก่า
สมมุติว่าเราต้องการแทนที่ค่า United Kingdom ด้วย United Kingdom ใน HashMap ของเรา เราสามารถทำได้โดยใช้รหัสนี้:
…
currencyCodes.replace("GBP", "Great Britain")
System.out.print(currencyCodes);
…
เมื่อเรารันโค้ดของเรา ค่าของคีย์ GBP (ซึ่งก็คือ United Kingdom ในกรณีนี้) จะถูกแทนที่ด้วย Great Britain และโปรแกรมของเราส่งคืนสิ่งต่อไปนี้:
{GBP=สหราชอาณาจักร,USD=สหรัฐอเมริกา}
วนซ้ำผ่าน HashMap
นอกจากนี้ คุณสามารถทำซ้ำผ่าน HashMap ใน Java HashMap มีสามวิธีที่สามารถใช้เพื่อทำซ้ำผ่าน HashMap:
- keySet() ใช้เพื่อวนซ้ำผ่านคีย์ใน HashMap
- values() ใช้เพื่อวนซ้ำค่าใน HashMap
- entrySet() ใช้เพื่อวนซ้ำผ่านคีย์และค่าใน HashMap
วิธีที่ง่ายที่สุดที่เราสามารถทำซ้ำผ่าน HashMap คือการใช้ for-each ห่วง หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java for-each loops คุณสามารถอ่านบทช่วยสอนของเราในหัวข้อได้ที่นี่
สมมติว่าเราต้องการพิมพ์ทุกค่าใน currencyCodes ”HashMap ไปยังคอนโซลเพื่อให้เราสามารถแสดงรายการสกุลเงินที่พวกเขาเสนอให้กับธุรกิจการแปลงสกุลเงินซึ่งจัดเก็บไว้ใน HashMap เราสามารถใช้รหัสต่อไปนี้เพื่อทำสิ่งนี้:
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);
}
}
}
เมื่อเรารันโค้ดของเรา การตอบสนองต่อไปนี้จะถูกส่งกลับ:
United Kingdom
United States
ในโค้ดของเรา เราใช้ for-each วนซ้ำทุกรายการในรายการ currencyCodes.values() . จากนั้นเราพิมพ์แต่ละรายการในบรรทัดใหม่
หากเราต้องการทำซ้ำทุกคีย์และพิมพ์ชื่อของแต่ละคีย์ใน HashMap ของเรา เราสามารถแทนที่ values() ด้วย keySet() ในรหัสของเราด้านบน นี่คือสิ่งที่โปรแกรมของเราจะกลับมา:
GBP
USD
บทสรุป
คลาส Java HashMap ใช้เพื่อเก็บข้อมูลโดยใช้โครงสร้างการรวบรวมคีย์/ค่า โครงสร้างนี้มีประโยชน์ถ้าคุณต้องการเก็บค่าสองค่าที่ควรเชื่อมโยงซึ่งกันและกัน
บทช่วยสอนนี้ครอบคลุมพื้นฐานของ HashMaps เราแสดงให้คุณเห็นถึงวิธีการสร้าง HashMap และสำรวจตัวอย่างบางส่วนของวิธีการ HashMap ทั่วไปในการใช้งานจริง ตอนนี้คุณมีข้อมูลที่จำเป็นสำหรับการทำงานกับ Java HashMaps อย่างผู้เชี่ยวชาญแล้ว!