队列是先进先出的线性结构,我们Java中也提供了Queue等一系列子类,在线程池中会有几个常用的队列,今天就使用数组来实现队列的基本操作
package com.zgz.search;
import java.util.Arrays;
public class MyQueue {
private int[] arr;
public MyQueue() {
this.arr = new int[0];
}
/**
* 添加元素至队列中
* @param value 要加入的元素
*/
public void add(int value){
int[] newArr = new int[arr.length+1];
for(int i=0;i<arr.length;i++){
newArr[i] = arr[i];
}
newArr[newArr.length-1] = value;
this.arr = newArr;
}
/**
* 出队
* @return
*/
public int poll(){
if(arr.length==0){
return -1;
}
int emelent = arr[0];
int[] newArr = new int[arr.length-1];
for(int i=1;i<arr.length;i++){
newArr[i-1] = arr[i];
}
this.arr = newArr;
System.out.println(Arrays.toString(arr));
return emelent;
}
public boolean isEmpty(){
return arr.length==0;
}
}