Queue
สิ่งที่คุณจะอธิบายเป็นสถานการณ์ที่เหมาะสมกับการใช้งาน
เนื่องจากคุณต้องการadd
องค์ประกอบใหม่และองค์ประกอบremove
เก่า คุณสามารถเพิ่มในตอนท้ายและลบออกจากจุดเริ่มต้น ที่จะไม่สร้างความแตกต่างมากนัก
คิวมีวิธีการadd(e)
และremove()
เพิ่มส่วนท้ายขององค์ประกอบใหม่และลบองค์ประกอบเก่าออกจากจุดเริ่มต้นตามลำดับ
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(5);
queue.add(6);
queue.remove(); // Remove 5
ดังนั้นทุกครั้งที่คุณเพิ่มองค์ประกอบลงไปqueue
คุณสามารถสำรองข้อมูลด้วยremove
การเรียกใช้เมธอด
อัปเดต : -
และถ้าคุณต้องการแก้ไขขนาดของQueue
, จากนั้นคุณสามารถดู: -ApacheCommons#CircularFifoBuffer
จากdocumentation
: -
CircularFifoBuffer เป็นบัฟเฟอร์เข้าก่อนออกก่อนโดยมีขนาดคงที่ซึ่งจะแทนที่องค์ประกอบที่เก่าที่สุดหากเต็ม
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
อย่างที่คุณเห็นเมื่อถึงขนาดสูงสุดแล้วเพิ่มองค์ประกอบใหม่โดยอัตโนมัติลบองค์ประกอบแรกที่แทรก
remove
และadd
?