????????Java???й?
????????c++?????????????????????????????????????????????????????????????????????????????????????й?;????java????????????в????????????????????????????????????????????????????й?????????????????Щjava??????????????????????????????????????????????????????????????????????????????????????????й?.
???????磺
??????ArrayList???????4??????????“??”??“??”??“?”??“??”?????????????ArrayList?е?"??"?????????????size????3??????ArrayList?????????3????????????????????????????????4??????????????????????????????????????????????????????????????????????????????????????????????????????????й???
???????????????????????????????????Stack????????????????????е????й?
package list;
public class Stack
{
//??????????????
private Object[] elementData;
//?????????????
private int size = 0;
private int capacityIncrement;
//?????????????????????Stack
public Stack(int initialCapacity){
elementData = new Object[initialCapacity];
}
public Stack(int initialCapacity ?? int capacityIncrement){
this(initialCapacity);
this.capacityIncrement = capacityIncrement;
}
//??“?”???????????
public void push(Object object){
ensureCapacity();
elementData[size++] = object;
// if(size==10) System.out.println("size="+size);
}
//???
public Object pop(){
if(size == 0){
throw new RuntimeException("?????");
}
return elementData[--size];
}
public int size(){
return size;
}
//??????????????????????????
private void ensureCapacity(){
//????????????
if(elementData.length==size){
Object[] oldElements = elementData;
int newLength = 0;
//???????capacityIncrement
if (capacityIncrement > 0){
newLength = elementData.length + capacityIncrement;
}else{
//???????????????1.5??
newLength = (int)(elementData.length * 1.5);
}
// System.out.println("newLength="+newLength);
elementData = new Object[newLength];
//???????????????????????
System.arraycopy(oldElements ?? 0 ?? elementData ?? 0 ?? size);
}
}
public static void main(String[] args){
Stack stack = new Stack(10);
//????????10?????
for (int i = 0 ; i < 10 ; i++){
stack.push("???" + i);
}
//???ε???10?????
for (int i = 0 ; i < 10 ; i++){
System.out.println(stack.pop());
}
}
}