Cola de implementación de Java (implementada por una matriz personalizada, se puede expandir automáticamente)

Cola de implementación de Java (se puede expandir automáticamente)


Primero declara la interfaz de la interfaz Cola<E>

//适用泛型
public interface Queue<E> {

	int getSize();
	boolean isEmpty();
	void enqueue(E e);//入队
	E dequeue();//出队
	E getFront();//获得队首元素
}

La clase ArrayQueue <E>implementa la interfaz, y la prueba también se incluye

Aquí se consigue a través de interfaces de auto-cola definida en los métodos de la clase Array, así la formación de la clase ArrayQueue
clase Array de encargo: punto I salto

/**
 * @author yinglongwu
 */
//这里通过自定义的Array类实现Queue接口,进而形成这个ArrayQueue,
//并且也可以自动扩容
public class ArrayQueue<E> implements Queue<E> {

	private Array<E> array;
	
	public ArrayQueue(int capacity){
		array = new Array<E>(capacity);
	}
	
	public ArrayQueue() {
		array = new Array<E>();//使用Array类里的无参构造
	}
	
	//获取队列的最大容量
	public int getCapacity() {
		return array.getCapacity();
	}

	//对接口中的方法进行重写
	@Override
	public int getSize() {
		return array.getSize();
	}

	@Override
	public boolean isEmpty() {
		return array.isEmpty();
	}

	@Override
	public void enqueue(E e) {//入队
		array.addLast(e);
	}

	@Override
	public E dequeue() {//出队
		return array.removeFirst();
	}

	@Override
	public E getFront() {//查看队首元素
		return array.getFirst();
	}
	
	//对toString方法进行重写,方便输出队列的基本信息
	@Override
	public String toString() {
		StringBuilder res = new StringBuilder();
		res.append("Queue: ");
		res.append("front [");//表明左侧是队首
		for (int i = 0; i < array.getSize(); i++) {
			res.append(array.get(i));
			if (i != array.getSize()-1) {
				res.append(", ");
			}
		}
		res.append("] tail");//表明右侧是队尾
		return res.toString();
	}
	
	//测试 ArrayQueue
	public static void main(String[] args) {
		
		ArrayQueue<Integer> queue = new ArrayQueue<Integer>();

		//包装类和其对应的基本数据类型可以自动转换
		for (int i = 0; i < 10; i++) {
			queue.enqueue(i);//入队
			System.out.println(queue);
			
			if (i%3==2) {//每三个元素出队一次
				queue.dequeue();
				System.out.println(queue);
			}
		}
	}
}

Resultado de salida
Inserte la descripción de la imagen aquí

318 artículos originales publicados · Me gusta 44 · Visitantes más de 20,000

Supongo que te gusta

Origin blog.csdn.net/qq_43594119/article/details/105234614
Recomendado
Clasificación