For my computer science class, I've implemented a Java version of a queue and would like to know if there's anything wrong with it. After my tests, it seems to work fine, but maybe somebody can point out what can be improved or if something is wrong.
public class Queue<E> implements IQueue<E> {
private E[] internalQueue;
private int currIndex;
public Queue(int size) {
internalQueue = (E[]) new Object[size];
currIndex = 0;
}
@Override
public void push(E input) {
internalQueue[currIndex] = input;
currIndex++;
}
public E[] getQueueDebug() {
return this.internalQueue;
}
@Override
public E pop() {
if (currIndex != 0) {
E toReturn = internalQueue[0];
for (int i = 1; i <= internalQueue.length - 1; i++) {
internalQueue[i - 1] = internalQueue[i];
internalQueue[i] = null;
}
currIndex--;
return toReturn;
}
return null;
}
@Override
public E top() {
if (currIndex != 0)
return internalQueue[0];
return null;
}
@Override
public boolean empty() {
return (currIndex == 0);
}
}