1,注意:上面两个方法都不能在集合下标没有赋值的情况下操作该下标,否则会报错
List<Integer> myList = new ArrayList<>(10);
// myList.add(1,2);同理也会报错
myList.set(1,2);
![](https://img-blog.csdnimg.cn/img_convert/24784f24d0d338bf65e756e61fa4395a.png)
2,add(index,value) 插入,长度+1:会在对应下标下插入数据。之前的index索引及之前的数据都会后移。集合长度+1: list.size() + 1
List<Integer> myList = new ArrayList<>(10);
myList.add(1);
myList.add(3);
myList.add(4);
myList.add(1,2);
System.out.println(myList.size());
System.out.println(myList);
![](https://img-blog.csdnimg.cn/img_convert/9351944e309fd4ff05dd3d47c240efd9.png)
3,set(index,value) 覆盖,长度不变:会在对应下标下覆盖数据。之前的index索引位置的值被新值覆盖,后面的数据不变。集合长度不变。
List<Integer> myList = new ArrayList<>(10);
myList.add(1);
myList.add(3);
myList.add(4);
myList.set(1,2);
System.out.println(myList.size());
System.out.println(myList);
![](https://img-blog.csdnimg.cn/img_convert/6b0457569e5aedd2f30c88e1622c6394.png)