แฮชแมปเข้า Java

⚡ สรุปอย่างชาญฉลาด

แฮชแมปเข้า Java จัดเก็บข้อมูลในรูปแบบคู่คีย์-ค่าที่ไม่ซ้ำกัน ซึ่งสามารถเรียกใช้ได้อย่างรวดเร็วโดยใช้คีย์ โดยจะเก็บการอ้างอิงถึงอ็อบเจ็กต์แทนที่จะเป็นค่าพื้นฐาน ดังนั้นจึงใช้คลาส Wrapper และมีเมธอดต่างๆ เช่น put, get, remove และ containsKey

  • 🗝️ นิยามของ HashMap: จัดเก็บคีย์เฉพาะที่เชื่อมโยงกับค่าต่างๆ เพื่อให้สามารถเรียกค้นข้อมูลได้อย่างรวดเร็วโดยใช้คีย์
  • 📦 การอ้างอิงวัตถุ: เก็บเฉพาะอ็อบเจ็กต์ ดังนั้นควรใช้คลาสห่อหุ้ม เช่น Integer แทนค่าพื้นฐาน
  • 🔧 วิธีการหลัก: ฟังก์ชัน put() ใช้สำหรับเก็บคู่ข้อมูล ฟังก์ชัน get() ใช้สำหรับดึงค่า และฟังก์ชัน remove() ใช้สำหรับลบข้อมูลโดยใช้คีย์
  • 🔍 การค้นหา: containsKey(), keySet(), values() และ isEmpty() จะตรวจสอบเนื้อหาของแผนที่ (map)
  • 🧪 ตัวอย่าง: ตัวอย่างโปรแกรมสร้างแผนที่ พิมพ์แผนที่ และลบรายการโดยใช้สัญลักษณ์กำหนดตำแหน่ง

แฮชแมปเข้า Java

Hashmap คืออะไร Java?

โดยทั่วไปแล้ว HashMap จะกำหนดไว้ คีย์เฉพาะ เพื่อให้สอดคล้องกัน ค่า ที่สามารถเรียกคืนได้ ณ จุดใดจุดหนึ่ง

แฮชแมปเข้า Java

คุณสมบัติของ Java แฮชแมป

ก) ดิ ค่า สามารถจัดเก็บไว้ในแผนที่โดยสร้างเป็น คีย์ - ค่า คู่. ค่าสามารถดึงข้อมูลได้โดยใช้คีย์โดยส่งผ่านไปยังวิธีที่ถูกต้อง

ข) ถ้า ไม่มีองค์ประกอบ มีอยู่ในแผนที่ มันจะโยน 'ไม่มีองค์ประกอบดังกล่าวข้อยกเว้น'.

c) ร้านค้า HashMap เท่านั้น การอ้างอิงวัตถุ- ด้วยเหตุนี้จึงไม่สามารถใช้งานได้ ชนิดข้อมูลดั้งเดิม เช่น double หรือ int ใช้คลาส wrapper (เช่น Integer หรือ Double) แทน.

คุณสมบัติของ Java แฮชแมป

การใช้ HashMaps ใน Java โปรแกรม:

ต่อไปนี้เป็นสองวิธีในการประกาศ Hash Map:

HashMap<String, Object> map = new HashMap<String, Object>();
HashMap x  = new HashMap();

วิธีการแฮชแมปที่สำคัญ

  • รับ (คีย์วัตถุ) – สิ่งนี้จะส่งคืนค่าที่เกี่ยวข้องกับคีย์ที่ระบุในสิ่งนี้ Java แฮชแมป
  • ใส่ (คีย์วัตถุ, ค่าสตริง) – วิธีการนี้จะจัดเก็บค่าที่ระบุและเชื่อมโยงกับคีย์ที่ระบุในแผนผังนี้

Java ตัวอย่างแฮชแมป

ต่อไปนี้เป็นตัวอย่างการใช้งาน Java Hash Map:

import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<String, String> objMap = new HashMap<String, String>();
    objMap.put("Name", "Suzuki");
    objMap.put("Power", "220");
    objMap.put("Type", "2-wheeler");
    objMap.put("Price", "85000");
    System.out.println("Elements of the Map:");
    System.out.println(objMap);
  }
}

Output:

Elements of the Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}

ตัวอย่าง: ลบค่าออกจาก HashMap ตามคีย์

import java.util.*;
public class HashMapExample {
   public static void main(String args[]) {
   // create and populate hash map
   HashMap<Integer, String> map = new HashMap<Integer, String>();
   map.put(1,"Java");
   map.put(2, "Python");
   map.put(3, "PHP");
   map.put(4, "SQL");
   map.put(5, "C++");
   System.out.println("Tutorial in Guru99: "+ map);
   // Remove value of key 5
   map.remove(5);
   System.out.println("Tutorial in Guru99 After Remove: "+ map);
   }
}

Output:

Tutorial in Guru99: {1=Java, 2=Python, 3=PHP, 4=SQL, 5=C++}
Tutorial in Guru99 After Remove: {1=Java, 2=Python, 3=PHP, 4=SQL}

ให้เราถามคำถามสองสามข้อกับ Hash Map เพื่อทำความเข้าใจให้ดีขึ้น

ถาม: ดังนั้น Mr.Hash Map ฉันจะทราบได้อย่างไรว่ามีการกำหนดคีย์เฉพาะให้กับคุณหรือไม่

ตอบ: เยี่ยมเลย คุณสามารถใช้เมธอด containsKey(Object KEY) กับฉันได้ มันจะส่งคืนค่าบูลีนหากฉันมีค่าสำหรับคีย์ที่กำหนด

ถาม: ฉันจะค้นหากุญแจที่มีอยู่ทั้งหมดบนแผนที่ได้อย่างไร?

ตอบ: ฉันมีวิธีการที่เรียกว่าเป็น ชุดกุญแจ() ที่จะคืนกุญแจทั้งหมดบนแผนที่ ในตัวอย่างข้างต้น หากคุณเขียนบรรทัดเป็น –
System.out.println(objMap.keySet());

มันจะส่งคืน เอาท์พุต เช่น-
[ชื่อ, ประเภท, กำลัง, ราคา]

ในทำนองเดียวกัน หากคุณต้องการเพียงค่าทั้งหมดเท่านั้น ผมก็มีวิธี ค่า()
System.out.println(objMap.values());

มันจะส่งคืน เอาท์พุต เช่น-
[ซูซูกิ 2 ล้อ 220, 85000]

ถาม: สมมติว่าฉันต้องลบเฉพาะคีย์ใดคีย์หนึ่งออกจากแผนที่ ฉันจำเป็นต้องลบทั้งแผนที่หรือไม่

A: ไม่นะเพื่อน!! ผมมีวิธี เอาออก(Object KEY) ที่จะลบเฉพาะคู่คีย์-ค่านั้นเท่านั้น

ถาม: เราจะตรวจสอบได้อย่างไรว่าคุณมีคู่คีย์-ค่าอยู่จริงหรือไม่

A: แค่เช็คดูว่าว่างหรือเปล่า!! สรุปคือใช้. มันว่างเปล่า() วิธีการต่อต้านฉัน..

คำถามที่พบบ่อย

HashMap เป็นโครงสร้างข้อมูลแบบไม่ซิงโครไนซ์และอนุญาตให้มีคีย์ที่เป็นค่าว่างได้หนึ่งคีย์และค่าที่เป็นค่าว่างได้หลายค่า ทำให้ทำงานได้เร็วกว่าเมื่อใช้งานแบบเธรดเดียว ในขณะที่ Hashtable เป็นโครงสร้างข้อมูลแบบซิงโครไนซ์และไม่อนุญาตให้มีคีย์หรือค่าที่เป็นค่าว่าง ทำให้ปลอดภัยต่อการใช้งานแบบหลายเธรด แต่ทำงานช้ากว่า

ใช่แล้ว HashMap อนุญาตให้มีคีย์ที่เป็นค่าว่างได้เพียงหนึ่งคีย์เท่านั้น และมีค่าว่างได้ไม่จำกัดจำนวน การพยายามเพิ่มคีย์ที่เป็นค่าว่างตัวที่สองจะเขียนทับค่าที่เชื่อมโยงกับคีย์ที่เป็นค่าว่างที่มีอยู่เดิม

ไม่ HashMap ไม่รับประกันลำดับของคีย์ หากต้องการลำดับการแทรก ให้ใช้ LinkedHashMap และหากต้องการลำดับที่เรียงตามคีย์ ให้ใช้ TreeMap แทน

AI สามารถวิเคราะห์รูปแบบการเข้าถึง เช่น การค้นหา ลำดับ และความต้องการการทำงานพร้อมกัน จากนั้นแนะนำ HashMap, TreeMap, LinkedHashMap หรือ ConcurrentHashMap ที่เหมาะสมping นักพัฒนาจะเลือกชุดข้อมูลที่มีประสิทธิภาพที่สุดสำหรับกรณีการใช้งานของตน

ใช่แล้ว การวิเคราะห์โดยใช้ AI สามารถระบุ HashMap ที่ถูกเข้าถึงโดยหลายเธรดโดยไม่ซิงโครไนซ์ และแนะนำให้ใช้ ConcurrentHashMap หรือการล็อกภายนอกเพื่อป้องกันสภาวะการแข่งขันและการเสียหายของข้อมูล

สรุปโพสต์นี้ด้วย: