众所周知List在内存中是连续存储的,所以索引速度是非常快的,对于元素的修改和赋值也是非常方便的,但是list有个缺点就是固定长度,在声明的时候必须指定长度,如果长度过长会造成内存的浪费,如果长度过短则会溢出,而且对于元素的插入也是非常麻烦的,所以就有了ArrayList。ArrayList的大小是根据元素的多少进行动态的扩展或缩小的,所以ArrayList是不需要指定长度的,而且ArrayList继承自List接口,所以对于元素的插入、移除、修改也是非常方便的。但是ArrayList也是有缺点的,因为它会把所有添加进来的元素当成object,所以对于不同类型的元素没有区分,这样在进行数据处理的时候会出现类型不匹配的错误,就算我们很小心的插入同类型数据,我们在处理的时候也要转换成对应的原类型数据,所以就会出现装箱拆箱的可能,会造成很大的性能消耗。
网友评论