Java Queue
FIFO چیست ؟
Java Queue
یک متد و در برنامه نویسی یک الگوریتم است که تعیین می کند اولین ورودی اولین خروجی خواهد بود به طور مثال صف نانوایی را در نظر بگرید هرشخصی ابتدا وارد شود زودتر نیز خارج خواهد شد.
Queue چیست ؟
Java Queue
Queue یک نوع صف است که براساس الگوریتم FIFO برنامه ریزی شده است.
صف دارای دو ویژگی بارز است
- هر نفر برای اضافه شدن به صف باید به آخر صف برود
- برای پاسخ به درخواست افراد درون صف به ابتدای صف مراجعه می کنید.
در جاوا برای نوع های مختلف میتوان یک صف تعریف کرد مثل String یا int یا … و یا حتی برای Objectهایی که خودمان تعریف میکنیم و میسازیم. در این جا ما به پیاده سازی صف از جنس String میپردازیم.
در دنیای کامپیوتر صف کاربردهای زیادی دارد مثلا وقتی ما در سیستم عامل خود فرایندی(process) اجرا میکنیم سیستم عامل مقداری RAM و CPU .. در اختیار فرآیند قرار میدهد و اگر چندین فرآیند همزمان در حال اجرا باشند آنها وارد صف میشوند و به ترتیب به آنها رسیدگی میشود.
پیاده سازی صف در جاوا
Java Queue
یک کلاس به نام Queue(صف) داریم که به صورت زیر است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.util.ArrayList; public class Queue <E>{ private ArrayList<E> queue; public Queue() { this.queue = new ArrayList<E>(); } public void Enqueue(E object){ queue.add(object); } public E Dequeue() { if (size()>0) { return queue.remove(0); } return null; } public int size() { return queue.size(); } public void print() { for (E item : queue) { System.out.print(item+" "); } System.out.println(); } } |
در این کلاس از یک Arraylist برای نگه داشتن اعضای صف استفاده کردیم.
سپس یک کلاس برای تست یک صف نیاز داریم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class TestQueue { /** * @param args */ public static void main(String[] args) { Queue<String> queue = new Queue<String>(); queue.Enqueue("jack"); queue.Enqueue("mike"); queue.Dequeue(); queue.Enqueue("adam"); System.out.println(queue.Dequeue()); System.out.println(queue.size()); } } |