Arraylist的add的底层思路
Arraylist的底层源码就是数组构成的
1.先创建一个新的数组 长度为原数组长度+1
2.一个for循环把老数据的数据给到新数组
3.把传过来的值放到数组的最后一个位置
4.替换数组 把新数组覆盖老数组
如果用户是第一次新增怎么办?
如果arr等于null,说明用户是第一次添加,就创建一个新的数组,把用户输入的值传入到数组的第0个下标
private Object[] arr;//2
public void add(Object ob){
//1.如果用户是第一次新增怎么办?
if(arr==null){//如果arr等于null,说明用户是第一次添加
arr=new Object[1];//就创建一个新的数组
arr[0]=ob;//把用户输入的值传入到数组的第0个下标
}else{
//1.先创建一个新的数组 长度为原数组长度+1
Object newarr[] = new Object[arr.length + 1];
//2.一个for循环把老数据的数据给到新数组
for(int i=0;i< arr.length;i++){
newarr[i]=arr[i];//arr[0] 值=1
}
//3.把传过来的值放到数组的最后一个位置
newarr[newarr.length-1]=ob;//1 newarr[1]=2 0
//4.替换数组 把新数组覆盖老数组
arr=newarr;
}
};
2.查询元素的get方法
public Object get(int index){
return arr[index];
};
3.查询集合的长度size()方法
public int size(){
return arr.length;
}
4.修改集合元素的set方法()
public void set(int index,Object element){
arr[index]=element;
};
5.集合的remove删除方法
第一步:先创建一个长度为原数组长度-1的新数组
第二步:复制原数组的内容到新数组
第三步:替换数组 把新数组覆盖老数组
public void remove(int index){//1
//1 2 3 4 5 index 3
//第一步 先创建一个长度为原数组长度-1的新数组
Object newarr[]=new Object[arr.length-1];//2
//第二步 复制原数组的内容到新数组
for(int i=0;i< arr.length;i++){//i=0 老数组的长度为3
if(i<index){//1
newarr[i]=arr[i];
}else if (i>index){
newarr[i-1]=arr[i];
}
}
arr=newarr;
};