ในการเขียนโปรแกรม ชนิดข้อมูลใช้เพื่อจำแนกประเภทข้อมูลเฉพาะ ข้อมูลแต่ละประเภทจะถูกจัดเก็บในลักษณะที่แตกต่างกัน และชนิดข้อมูลที่เก็บค่าไว้จะเป็นตัวกำหนดการดำเนินการที่สามารถดำเนินการกับค่านั้นได้
เมื่อคุณทำงานใน 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 อย่างผู้เชี่ยวชาญแล้ว!