package com.icss.list;
import java.util.Arrays;
public class ArrayListTest {
Object[]objects=new Object[10];//定义一个长度为10的数组
int size;//定义元素个数
public void add(Object o){//添加一个新的元素
if (size>objects.length){//判断元素个数是不是大于数组的长度
int old=objects.length;//获取当前的数组的长度
int newOld=old+(old>>1);//把当前的数组扩容为当前的1.5倍
objects = Arrays.copyOf(this.objects, newOld);
//把旧的数组复制给新的数组
}
objects[size]=o;
size++;
}
public Object get(int index){//获取数据
if (index>size){//判断输入的下标是不是大于元素的个数
throw new IndexOutOfBoundsException("数组的下标越界");
}
return objects[index];//把当前的值反回去
}
public void set(int index,Object value){
if (index>size){//判断输入的下标是不是大于元素的个数
throw new IndexOutOfBoundsException("数组的下标越界");
}
objects[index]=value;//把数值添加到穿进来的索引的相应位置
}
public void delete(int index){
if (index>size){//判断输入的下标是不是大于元素的个数
throw new IndexOutOfBoundsException("数组的下标越界");
}
for (int i = index; i <objects.length ; i++) {
objects[size]=objects[size+1];
}
size--;
}
public void deleteAll(){
size=0;
for (int i = 0; i <objects.length ; i++) {
objects[size]=null;
}
}
}
手写List原理
于 2023-09-25 12:34:43 首次发布