public class ObjectArray2<T> {
private T[] elementData;
private int elementCount;
@SuppressWarnings("unchecked")
public ObjectArray2(int size){
elementData = (T[]) new Object[size];
elementCount = 0;
}
//map用,设置count
@SuppressWarnings("unchecked")
public ObjectArray2(int size, int count){
elementData = (T[]) new Object[size];
elementCount = count;
}
public void add(T c) {
elementData[elementCount++] = c;
}
public T get(int i) {
return elementData[i];
}
public int size() {
return elementCount;
}
public void clear(){
elementCount = 0;
}
//stack op push与add方法实现一致,合并
public T pop() {
T obj = elementData[elementCount - 1];
elementCount--;
return obj;
}
public T peek() {
return elementCount>0?elementData[elementCount - 1]:null;
}
//map op
public void put(int index, T item) {
elementData[index] = item;
}
public void reset( T item) {
for(int i=0;i<elementCount;i++)
elementData[i] = item;
}
@Override
public String toString(){
StringBuffer sb = new StringBuffer();
for(int i=elementCount-1;i>=0;i--) {
sb.append(elementData[i]).append(" ");
}
return sb.toString();
}
}