package com.coding.basic; import java.util.Arrays; public class Queue { private Object[] elementData = {}; private int size; private int currCount; public enum CapaCityFlag { ADD, SUB } public Object enQueue(Object obj) { addElement(obj); return obj; } public Object deQueue() { Object obj = elementData[currCount++]; grow(CapaCityFlag.SUB); return obj; } private void addElement(Object obj) { grow(CapaCityFlag.ADD); elementData[size++] = obj; } private void grow(CapaCityFlag capaCityFlag) { int oldElementData = elementData.length; if (CapaCityFlag.ADD.equals(capaCityFlag)) { oldElementData++; elementData = Arrays.copyOf(elementData, oldElementData); } if (CapaCityFlag.SUB.equals(capaCityFlag)) { oldElementData--; /* * TODO * elementData = System.arraycopy(elementData, srcPos, dest, destPos, length) copyOf(elementData, oldElementData);*/ } } public int size() { return size; } }