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

วิธีใช้คลาส Java HashMap

ในการเขียนโปรแกรม ชนิดข้อมูลใช้เพื่อจำแนกประเภทข้อมูลเฉพาะ ข้อมูลแต่ละประเภทจะถูกจัดเก็บในลักษณะที่แตกต่างกัน และชนิดข้อมูลที่เก็บค่าไว้จะเป็นตัวกำหนดการดำเนินการที่สามารถดำเนินการกับค่านั้นได้

เมื่อคุณทำงานใน 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 อย่างผู้เชี่ยวชาญแล้ว!