//模板类
public class ObjectArray<T> {
private Object[] elementData;
private int elementCount;
public ObjectArray(int size){
elementData = new Object[size];
elementCount = 0;
}
//map用,设置count
public ObjectArray(int size, int count){
elementData = new Object[size];
elementCount = count;
}
public void add(T c) {
elementData[elementCount++] = c;
}
@SuppressWarnings("unchecked")
public T get(int i) {
return (T) elementData[i];
}
public int size() {
return elementCount;
}
public void clear(){
elementCount = 0;
}
//stack op push与add方法实现一致,合并
@SuppressWarnings("unchecked")
public T pop() {
T obj = (T) elementData[elementCount - 1];
elementCount--;
return obj;
}
@SuppressWarnings("unchecked")
public T peek() {
return elementCount>0?(T)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();
}
}