আপনি যা বর্ণনা করছেন, তা ব্যবহার করার উপযুক্ত পরিস্থিতি 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
: -
সার্কুলারফাইফুফার একটি স্থির আকারের সাথে প্রথম প্রথম আউট বাফার যা পূর্ণ হলে এটি তার প্রাচীনতম উপাদানটি প্রতিস্থাপন করে।
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
আপনি দেখতে পাচ্ছেন, যখন সর্বোচ্চ আকার পৌঁছে যায়, তারপরে নতুন উপাদান যুক্ত করা স্বয়ংক্রিয়ভাবে প্রবেশ করা প্রথম উপাদানটিকে সরিয়ে দেয়।
remove
এবং মতadd
?