จะลบและเข้าถึงองค์ประกอบ ConcurrentHashMap ใน Java ได้อย่างไร

Ca Lb Laea Khea Thung Xngkh Prakxb Concurrenthashmap Ni Java Di Xyangri



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

บทความนี้สาธิตขั้นตอนในการลบและเข้าถึง ConcurrentHashMap Elements ใน Java

จะลบองค์ประกอบ ConcurrentHashMap ใน Java ได้อย่างไร

สามารถลบองค์ประกอบเฉพาะออกจาก ' ConcurrentHashMap ” องค์ประกอบผ่าน “ ลบ() ' วิธี. หากต้องการลบองค์ประกอบทั้งหมดพร้อมกัน ปุ่ม ' ชัดเจน() ” วิธีการเป็นตัวเลือกที่ดีที่สุดที่จะเลือกใช้







นอกจากนี้ยังมีเมธอด “remove()” อีกสองรูปแบบ:



  • ลบ (คีย์) ” ลบเอนทิตีที่ระบุ “ สำคัญ ” จาก “ConcurrentHashMap”
  • ลบ (คีย์, ค่า) ” ลบเอนทิตีที่ระบุ “ สำคัญ ” สอดคล้องกัน “ ค่า ” จาก “ConcurrentHashMap”

เยี่ยมชมบล็อกรหัสด้านล่างสำหรับคำอธิบายที่ดีขึ้น:



นำเข้า java.util.concurrent.ConcurrentHashMap ;
ระดับ ราก
{
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) // การสร้าง main() วิธีการ
{ // ประกาศ ConcurrentHashMap
ทีม ConcurrentHashMap = ใหม่ ConcurrentHashMap ( ) ;
ทีม. ใส่ ( 'ธอร์' , 2 ) ;
ทีม. ใส่ ( 'แปลก' , 4 ) ;
ทีม. ใส่ ( 'ฮอว์คอาย' , 6 ) ;
ระบบ . ออก . พิมพ์ ( 'แผนที่แฮชพร้อมกัน: ' + ทีม ) ;

นานาชาติ ค่า = ทีม. ลบ ( 'แปลก' ) ;
ระบบ . ออก . พิมพ์ ( 'มูลค่า ' + ค่า + 'ถูกลบ' ) ;
ระบบ . ออก . พิมพ์ ( 'แผนที่แฮชพร้อมกัน: ' + ทีม ) ;

บูลีน ผลลัพธ์ = ทีม. ลบ ( 'ฮอว์คอาย' , 6 ) ;
ระบบ . ออก . พิมพ์ ( 'รายการ {Hawkeye = 6} ถูกลบหรือไม่ ' + ผลลัพธ์ ) ;
ระบบ . ออก . พิมพ์ ( 'อัปเดต ConcurrentHashMap: ' + ทีม ) ;

ทีม. ชัดเจน ( ) ;
ระบบ . ออก . พิมพ์ ( 'อัปเดต ConcurrentHashMap: ' + ทีม ) ;

}
}

คำอธิบายของบล็อกรหัสด้านบน:





  • ประการแรก 'ConcurrentHashMap' ชื่อ ' ทีม ” ถูกสร้างขึ้น จากนั้นข้อมูลจำลองจะถูกแทรกเข้าไปข้างในโดยใช้ปุ่ม “ ใส่ ' วิธี.
  • ต่อไป “ ลบ() ” วิธีการใช้และกุญแจของ “ แปลก ” จะถูกส่งต่อไปยังมัน วิธีนี้จะลบเอนทิตีออกจากแผนที่ซึ่งมีรหัส 'แปลก'
  • นอกจากนี้ แสดงองค์ประกอบที่เหลือของแผนที่ผ่าน “ConcurrentHashMap”
  • ตอนนี้ผ่าน “ สำคัญ ” และสอดคล้อง “ ค่า ” ถึง “ ลบ() ” วิธีการลบเอนทิตีจาก “ConcurrentHashMap” ที่มีคีย์และค่าเฉพาะ
  • หลังจากนั้น แสดง “ConcurrentHashMap” เพื่อดูความแตกต่าง
  • ในตอนท้ายให้ใช้ ' ชัดเจน() ” วิธีการลบองค์ประกอบทั้งหมดที่อยู่ใน “ConcurrentHashMap” นอกจากนี้ แสดง “ConcurrentHashMap” บนคอนโซลในตอนท้าย

หลังจากสิ้นสุดขั้นตอนการรวบรวม:



ภาพรวมแสดงองค์ประกอบที่ถูกลบออกจาก ConcurrentHashMap

จะเข้าถึงองค์ประกอบ ConcurrentHashMap ใน Java ได้อย่างไร

องค์ประกอบของ “ ConcurrentHashMap ” สามารถเข้าถึงได้โดยใช้หลายกลุ่มวิธีการ กลุ่มแรกประกอบด้วย “ ชุดรายการ () ”, “ ชุดคีย์ () ' และ ' ค่า () ” วิธีการ พวกมันถูกใช้เพื่อดึงองค์ประกอบทั้งหมดในคราวเดียว โดยใช้วิธีการข้างต้น โปรแกรมเมอร์สามารถเลือกที่จะดึงข้อมูล “ กุญแจ ”, “ ค่า ' หรือทั้งคู่ ' คีย์/ค่า ” การทำแผนที่ของแผนที่

เยี่ยมชมรหัสด้านล่างเพื่อทำความเข้าใจการใช้งานจริงของวิธีการข้างต้น:

นำเข้า java.util.concurrent.ConcurrentHashMap ;

ระดับ หลัก {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) // การสร้าง main() วิธีการ
{ // ประกาศ ConcurrentHashMap
ทีม ConcurrentHashMap = ใหม่ ConcurrentHashMap ( ) ;
ทีม. ใส่ ( 'ธอร์' , 2 ) ;
ทีม. ใส่ ( 'แปลก' , 4 ) ;
ทีม. ใส่ ( 'ฮอว์คอาย' , 6 ) ;
ทีม. ใส่ ( 'เสือดำ' , 8 ) ;
ระบบ . ออก . พิมพ์ ( 'แผนที่แฮชพร้อมกัน: ' + ทีม ) ;
ระบบ . ออก . พิมพ์ ( 'ดึงคีย์และค่า: ' + ทีม. รายการชุด ( ) ) ;
ระบบ . ออก . พิมพ์ ( 'ดึงกุญแจ: ' + ทีม. ชุดคีย์ ( ) ) ;
ระบบ . ออก . พิมพ์ ( 'ดึงค่า: ' + ทีม. ค่า ( ) ) ;
}
}

คำอธิบายของบล็อกรหัสด้านบน:

  • ขั้นแรก สร้าง “ConcurrentHashMap” ชื่อ “ ทีม ” และแทรกหลายองค์ประกอบในนั้นโดยใช้ “ ใส่() ' วิธี.
  • ถัดไป แสดง “ConcurrentHashMap” บนคอนโซลโดยใช้ “ out.println() ' วิธี.
  • จากนั้นใช้ปุ่ม “ ชุดรายการ () ” วิธีการดึงข้อมูลทั้งหมดที่มีอยู่บนแผนที่
  • หลังจากนั้นให้ใช้ “ ชุดคีย์ () ” วิธีการเรียกเฉพาะกุญแจจากแผนที่
  • ในตอนท้ายให้ใช้ ' ค่า () ” วิธีการเรียกเฉพาะค่าที่เกี่ยวข้องกับแต่ละคีย์ ส่งคืนค่าตามลำดับเท่านั้น

หลังจากดำเนินการตามรหัสด้านบน:

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

ตอนนี้กลุ่มที่สองประกอบด้วย ' รับ() ' และ ' getOrDefault() ” วิธีการ วิธีการเหล่านี้ใช้เพื่อดึงข้อมูล “ กุญแจ ' จาก ' ConcurrentHashMap '. ตัวอย่างเช่น ไปที่บล็อกรหัสด้านล่าง:

นำเข้า java.util.concurrent.ConcurrentHashMap ;
ระดับ หลัก {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) // การสร้าง main() วิธีการ
{ // ประกาศ ConcurrentHashMap
ทีม ConcurrentHashMap = ใหม่ ConcurrentHashMap ( ) ;
ทีม. ใส่ ( 'ธอร์' , 2 ) ;
ทีม. ใส่ ( 'แปลก' , 4 ) ;
ทีม. ใส่ ( 'ฮอว์คอาย' , 6 ) ;
ทีม. ใส่ ( 'เสือดำ' , 8 ) ;
ระบบ . ออก . พิมพ์ ( 'ใช้ getOrDefault():' + ค่า2 ) ;

นานาชาติ มูลค่า1 = ทีม. รับ ( 'ฮอว์คอาย' ) ;
ระบบ . ออก . พิมพ์ ( 'คีย์ที่ดึงมาสำหรับค่าที่ระบุคือ: ' + มูลค่า1 ) ;
นานาชาติ ค่า2 = ทีม. getOrDefault ( 'โรมานอฟ' , 10 ) ;
ระบบ . ออก . พิมพ์ ( 'แผนที่แฮชพร้อมกัน: ' + ทีม ) ;
}
}

คำอธิบายของรหัสด้านบน:

  • ใช้เหมือนกัน” ConcurrentHashMap ” ซึ่งสร้างขึ้นในบล็อกโค้ดด้านบน
  • นอกจากนี้ ใช้ “ รับ() ” วิธีการและส่งค่าที่จะดึงคีย์ภายในวงเล็บ
  • นอกจากนี้ การใช้ “ getOrDefault() ” วิธีการที่ใช้สองพารามิเตอร์/ค่า ค่า และคีย์เริ่มต้น หากพบวัตถุที่ระบุภายในแผนที่ คีย์ที่เกี่ยวข้องจะถูกดึงมา และหากไม่พบค่าที่ระบุ ระบบจะใช้คีย์เริ่มต้น
  • หลังจากนั้น เก็บผลลัพธ์ของทั้งสองวิธีไว้ในตัวแปรและแสดงบนคอนโซลเพื่อให้เห็นภาพ

หลังจากการดำเนินการบล็อกโค้ดด้านบน:

สแนปชอตด้านบนแสดงคีย์ที่เกี่ยวข้องกับค่าที่เรียกค้นและพิมพ์บนคอนโซล

บทสรุป

หากต้องการลบ/ลบองค์ประกอบเฉพาะจาก ' ConcurrentHashMap ” ที่ “ ลบ() ” สามารถใช้วิธี โปรแกรมเมอร์สามารถลบองค์ประกอบที่มี “ สำคัญ ” หรือที่สอดคล้องกัน “ ค่า '. ด้วยการใช้ “ ชัดเจน() ” วิธีการ ทุกองค์ประกอบที่อยู่ในแผนที่จะถูกลบทันที สำหรับการเข้าถึง ' ชุดรายการ () ”, “ ชุดคีย์ () ' และ ' ค่า () ใช้วิธีการ พวกเขาสามารถเรียกคืนได้ทั้งหมด” คีย์/ค่า ”, “ กุญแจ ', และ ' ค่า ' จาก ' ConcurrentHashMap ' ในครั้งเดียว. หากต้องการดึงเฉพาะคีย์เฉพาะ ' รับ ' และ ' getOrDefault ใช้วิธีการ