今天元宵節 首先祝大家 元宵節快樂
由於疫情嚴重 希望大家待在家裏爲社會做貢獻呢
沒事還是要多多研究底層代碼實現呢 嘿嘿
下面全部內容了 如果有覺得不妥的 留言區 交流哦 共同進步呀
public class MyArrayList<E>{
private static final int DEFALT_CAPTION =10;
private int size;
private Object[] elementData;
public MyArrayList(){
elementData = new Object[DEFALT_CAPTION];
}
public MyArrayList(int capacity){
if(capacity<0){
throw new RuntimeException("數組長度不能爲負數"+capacity);
}else if(capacity==0){
elementData = new Object[DEFALT_CAPTION];
}
elementData = new Object[capacity];
}
public void add(E o){
if(size ==elementData.length){
Object[] newArray = new Object[elementData.length+(elementData.length>>1)];
System.arraycopy(elementData,0,newArray,0,elementData.length);
elementData = newArray;
}
elementData[size++]=o;
}
public E get(int index){
return (E)elementData[index];
}
public void set(int index,E element){
elementData[index] =element;
}
public void checkRange(int index){
if(index<0||index>size-1){
throw new RuntimeException("數組下標越界:"+index);
}
}
public void remove(E element){
for (int i = 0; i <elementData.length ; i++) {
if(element.equals(get(i))){
remove(i);
break;
}
}
}
public void remove(int index){
int removeNum = elementData.length-index-1;
if(removeNum>0){
System.arraycopy(elementData,index+1 ,elementData,index,removeNum);
}
elementData[--size] =null;
}
public int size(){
return size;
}
public boolean isEmpty(){
return size==0;
}
public String toString(){
StringBuilder stb = new StringBuilder();
stb.append("[");
for (int i = 0; i < size; i++) {
stb.append(elementData[i]+",");
}
stb.setCharAt(stb.length()-1,']');
return stb.toString();
}
}