Array list 底层的实现原理

136 阅读1分钟

package myList.com;

public class MyArrayList {

private Object elementData[];
private int size;

public int getsize(){
return size;
}

public MyArrayList() {
this(10);
}

public MyArrayList(int i) {
if(i<0){
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
elementData = new Object;

}
//检查数组是否越界
public void check(int index){
if(index<0 || index>size){
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//添加元素
public void Add(Object obj){

//数据扩容
if(size >= elementData.length){
Object[] nweArray = new Object[size*2+1];
System.arraycopy(elementData, 0, nweArray, 0, elementData.length);
elementData = nweArray;
}
elementData[size++] = obj;

}
//获取你需要第几个数组的值
public Object get(int index){

check(index);
return elementData[index];
}
//删除数组第几个值
public void remove(int index)
{
check(index);

int NumMoved = size - index - 1;
if(NumMoved > 0){
System.arraycopy(elementData, index+1, elementData, index, NumMoved);
}
elementData[size--] = null;

}

public static void main(String[] args) {
MyArrayList list = new MyArrayList(4);
list.Add("a");
list.Add("b");
list.Add("c");
list.Add("d");
list.Add("e");
for(int i=0;i<list.size;i++){
System.out.println(list.get(i));
}
}
}

---------------------
作者:Mr.冬冬
来源:CSDN
原文:blog.csdn.net/weixin_4230…
版权声明:本文为博主原创文章,转载请附上博文链接!