一、MyStack
1.java栈特性:先进后出
2.数组实现
import java.util.Arrays;
public class MyStack {
private People[] element;
private int size;
/*
入栈操作:
*/
private void ensureCapacity(){
if(size == element.length){
element = Arrays.copyOf(element,element.length+(element.length>>1));
}
}
public void push(People value){
ensureCapacity();
element[size++]=value;
}
/*
出栈操作:
*/
public void pop(){
if (size == 0){
return;
}else{
element[size-1] = null;// 防止内存泄漏
size--;
}
}
/*
获取栈顶元素:
*/
public People peek(){
if(size == 0){
//异常处理
// throw new EmptyStackException();
return null;//error ; emptyStack push(-1)
}
return element[size -1];
}
}
3.java垃圾回收器:
遵循“垃圾回收机制”:用引用计数法标记是否为“垃圾”。
二、MyArrayList
public class MyArrayList{
int[] element;
int size;
//头部添加
public void addHead(int value){
if(size == element.length){
element = Arrays.copyOf(element,element.length*2);
}
for(int i = 1;i<element.length-1;i++){
element[i] = element[i+1];
}
element[0] = value;
}
```//尾部添加
public void addTail(int value){
if(size == element.length){
element = Arrays.copyOf(element,element.length*2);
}
element[size] = value;
size++;
}