欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 队列简单了解

程序员文章站 2022-03-14 15:05:21
...

          这有点像坐公交车,大家按先后顺序一次排好队,后面来的人入队enqueue,也就排到最后面了后面陆续有人来,都是站到队列的最后一个,排第一个的肯定是第一个上车的,然后每次都是站最前面的上车

package ce;

import java.util.ArrayList;
import java.util.List;

public class MyQueue {
	private List<Integer> pQueue;
	private int pStart;

	public MyQueue() {
		pStart = 0;                        //从下标0开始放
		pQueue = new ArrayList<Integer>();   //创建一个集合
	}
	public boolean enQueue(int x) {        //入队
		pQueue.add(x);             
		return true;
	};
	public boolean deQueue() {             //出队,这边
		if (!isNotEmpty()) {
			return false;
		}
		pStart++;                          //增涨下标
		return true;
	}

	public int num() {                   //取对应位置的数据
		return pQueue.get(pStart);
	}

	public boolean isNotEmpty() {             //判断队列是否为空
		return pStart < pQueue.size();
	}

	public int size() {                    //大小
		return pQueue.size();
	}

}
package ce;

public class Main {
	public static void main(String[] args) {
		MyQueue q = new MyQueue();
		q.enQueue(5);
		q.enQueue(3);
		q.enQueue(6);
		q.enQueue(7);
		for (int i = 0; i < q.size(); i++) {
			if (q.isNotEmpty()) {
				System.out.println(q.num());
			}
			q.deQueue();
		}
	}
}

java 队列简单了解

可以看到是按顺序执行的 

             这是比较低效硬刚的队列实现,

    正常在设计队列时,都是先把空间开辟出来,然后采用两个指针来标识头部和尾部

在一个普通队列里,假如你开辟的这个队列空间为100个,全部装满了,你从最前面拿走了一个,你重新往第100位置放的时候发现放不进去,因为100这个位置还被原来的那个人占着,它并不会因为你前面的那个人走了,它就去调整座位,所以出现两个指针来标识位置,反正我们空间是100座位,座位固定住,那我们变动座位编号就好,原来1号座位空了,我就把1号变成100,原来的2号变成了新的1号,然后他们往100这个位置放就ok了吧