วิธีลบองค์ประกอบที่หมดอายุออกจาก HashMap และเพิ่มองค์ประกอบเพิ่มเติมในเวลาเดียวกัน – Java Timer, TimerTask และ Futures () – ตัวอย่างที่สมบูรณ์

เผยแพร่แล้ว: 2021-04-02
วิธีลบองค์ประกอบที่หมดอายุออกจาก HashMap และเพิ่มองค์ประกอบเพิ่มเติมในเวลาเดียวกัน - Java Timer, TimerTask และ Futures ()

Hashmap, ArrayList, Static Map, Vectors ฯลฯ เป็นองค์ประกอบเฟรมเวิร์กคอลเลกชัน Java ที่ใช้มากที่สุด มีหลายสถานการณ์ที่คุณสามารถใช้สิ่งนี้ได้ตามความต้องการของคุณ

ตัวอย่างนี้เป็นตัวอย่าง Java ที่น่าสนใจมาก เราจะดำเนินการด้านล่างใน HashMap() เดียว

  • สร้าง crunchifyMap Object
  • เพิ่มองค์ประกอบในแผนที่ทุกวินาทีซึ่งตั้งเวลาหมดอายุไว้ที่ 5 seconds
  • Check องค์ประกอบที่หมดอายุเช่นแคชทุกวินาทีและ delete from map if expired
  • หลังจากผ่านไป 5 วินาที คุณจะได้ always same size always 5 elements เมื่อคุณเพิ่มและลบองค์ประกอบที่หมดอายุทุกวินาที

นอกจากนี้ หากคุณมี below questions แสดงว่าคุณมาถูกที่แล้ว:

  • ตัวอย่างแผนที่หมดอายุแบบพาสซีฟคืออะไร
  • แผนที่พร้อมกันพร้อมองค์ประกอบหมดเวลา
  • ตัวอย่างแผนที่แคช Java
  • Java TimerTask ตัวอย่าง
  • Evictor – ตัวอย่างแผนที่ Java พร้อมกัน

มาเริ่มกันเลย:

จุด-1

  • สร้างองค์ประกอบตัวจับเวลา crunchifyTimer
  • กำหนดเวลางานที่ระบุ CrunchifyReminder() สำหรับการดำเนินการล่าช้าคงที่ซ้ำ ๆ ซึ่งเป็น 1 วินาที
  • ในงานที่กำหนดไว้
    • add องค์ประกอบลงใน crunchifyMap
    • ตรวจสอบองค์ประกอบที่หมดอายุจาก crunchifyMap และ delete

จุด-2

  • ระหว่างดำเนินการ addElement()
    • เรากำลังเชื่อมโยง current time สำหรับแต่ละองค์ประกอบ
  • ระหว่างการดำเนินการ crunchifyClearExipredElementsFromMap()
    • เรากำลังตรวจสอบเวลาปัจจุบันด้วยเวลาขององค์ประกอบ
    • หากเวลาต่างกันมากกว่า 5 วินาที ให้ลบองค์ประกอบออกจาก crunchifyMap

จุด-3

  • ระหว่างการเพิ่มและลบอิลิเมนต์การพิมพ์การดำเนินการบน Eclipse console
  • องค์ประกอบที่เพิ่มครั้งแรกจะถูกลบออก 1 และอื่น ๆ
  • โปรดตรวจสอบผลลัพธ์ของคอนโซล Eclipse สำหรับผลลัพธ์

นี่คือโปรแกรม Java:

เอาต์พุตคอนโซล Eclipse:

เพียงเรียกใช้โปรแกรมด้านบนและคุณจะเห็นผลลัพธ์ดังนี้

วิธีลบองค์ประกอบที่หมดอายุออกจาก HashMap และเพิ่มองค์ประกอบเพิ่มเติมในเวลาเดียวกัน - Java Timer, TimerTask และ Futures () - ผลลัพธ์คอนโซล

แจ้งให้เราทราบหากคุณประสบปัญหาใด ๆ ที่ทำงานอยู่เหนือโปรแกรม Java