队列的基本操作

一、定义一个queue的接口

其中包含队列用到的方法;

package p1.接口;

public interface Queue<E> extends Iterable<E> {
    public void offer(E element);   //入队
    public E poll();    //出队
    public E peek();    //查看队首元素
    public boolean isEmpty();
    public void clear();
    public int size();
}

二、实现queue接口所定义的方法

(1)因为底层基于ArrayList实现,所以队列的offer()方法;是现实为ArrayList的add()方法;

 @Override
    public void offer(E element) {

        list.add(list.size(), element);
    }

(2)与(1)同理队列poll()方法是ArrayList的remove()方法;因为队的原理是队头出所以移

除的是ArrayList的第一个元素即remove(0);

@Override
    public E poll() {

        return list.remove(0);
    }

(3)与(1)同理队列peek()方法是ArrayList的get()方法;又因获取的是队头元素;所以

ArrayList对应为get(0);

@Override
    public boolean isEmpty() {

        return list.isEmpty();
    }

(4)与(1)同理  队的toString(),iterator(),clear(), isEmpty(),size()与ArrayList的

toString(),iterator(),clear(), isEmpty(),size()同理;

 @Override
    public boolean isEmpty() {

        return list.isEmpty();
    }

    @Override
    public void clear() {

        list.clear();
    }

    @Override
    public int size() {

        return list.size();
    }

    @Override
    public Iterator<E> iterator() {
        return list.iterator();
    }

    @Override
    public String toString() {

        return list.toString();
    }

三、测试代码

例题:

将1~5存入队中,并遍历输出

输出结果为:[1,2,3,4,5]

将1,2输出,在遍历输出栈

输出结果为:[3,4,5]

代码如下:

package p0.测试;

import p2.线性结构.ArrayQueue;

public class TestArrayQueue {
    public static void main(String[] args) {
        ArrayQueue<Integer> queue = new ArrayQueue<>();
        for (int i = 1; i <= 5; i++) {
            queue.offer(i);
        }
        System.out.println(queue);
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        System.out.println(queue);
    }
}

运行代码:

 与例题预想结果一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值