1. arraylist原理
时间: 2023-08-06 21:09:45 浏览: 87
ArrayList的实现原理
ArrayList是Java中常用的集合类,它基于动态数组实现,可以动态增长和缩减数组的大小。它的原理是将元素存储在一个数组中,当需要增加元素时,如果数组已满,则创建一个新的数组,将原数组中的元素复制到新数组中,并将新元素添加到新数组中,然后用新数组来替换原数组;当需要删除元素时,将指定位置的元素删除,并将后面的元素向前移动一位,以填补空位。
ArrayList支持随机访问,可以根据下标来访问元素,因为它底层是一个数组,因此访问元素的时间复杂度为O(1)。但是在插入和删除元素时,由于需要移动其他元素,时间复杂度为O(n)。
ArrayList还支持自动扩容,当数组大小不足以容纳所有元素时,可以自动扩容,一般情况下会扩容为原来的两倍,这样可以保证添加元素时不会频繁地扩容,提高了性能。但是,在扩容时需要将原数组中的元素复制到新数组中,时间复杂度为O(n)。
总之,ArrayList的优点是支持随机访问、动态增长和缩减数组的大小,缺点是在插入和删除元素时性能较差。因此,如果需要频繁地进行插入和删除操作,建议使用LinkedList。
阅读全文