java 队列简单了解

          这有点像坐公交车,大家按先后顺序一次排好队,后面来的人入队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();
		}
	}
}

可以看到是按顺序执行的 

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斗码士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值