当前位置: 首页 > 后端技术 > Java

ArrayList&Arrays.ArrayList和踩坑的区别

时间:2023-04-01 15:30:49 Java

概述在日常编码中,我们经常使用List类型的对象;初始化List时,可以直接带参数构造Arrays.ArrayList,可以省下一行代码,但不了解源码或特性也会导致一些异常情况;区别初始化publicstaticvoidmain(String[]args){//java.util.ArrayListListlist1=newArrayList<>();list1.add("1");//java.util.Arrays.ArrayListListlist2=Arrays.asList("1");}上面的例子中,两个list乍一看是一样的,其实在调用list2的时候略有不同.add("2"),系统会报错Exceptioninthread"main"java.lang.UnsupportedOperationException。原因是Arrays.ArrayList没有实现AbstractList中的add方法;同样,Arrays.ArrayList也没有实现AbstractList中的方法。删除方法;也可以认为用Arrays.ArrayList初始化的对象是定长集合,不支持添加元素;所以在实际使用这两个类的时候需要注意使用场景,如果下游需要集合Arrays.ArrayList不能用来增删改查;Arrays.ArrayList初始化List后,调用这个对象的add和remove方法不会编译报错,只有在程序运行时才能发现问题。这里需要特别注意