《工作笔记》Java中的集合类arraylist和linkedlist 冷不防 2022-03-07 08:44 73阅读 0赞 ## ArrayList ## ArrayList的数据结构是Object数据 当使用 List list = new ArrayList(); ,只是新建了一个空数组 当使用 List list = new ArrayList(10); 会新建长度为10的Object数组 1. 在list是空数组的情况下,会取 `DEFAULT_CAPACITY`作为数组的长度,并创建数组 ,并向新数组中添加数据 2. 在list不是空数组的情况下,会计算是否需要扩容,扩容是按照现有数组长度的1.5倍扩充 private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); } 1. list数组支持随机查找,主要体现在根据下标就能找到元素 所以,在使用数据的时候,最好能预估数组长度,减少数组扩容带来的性能损耗,还有就是数组在插入的时候的,如果默认插在数组末尾,时间复杂度是 O(1),如果是插在中间位置,那么需要插入后面的所有位置都进行移动,性能也很差,删除和添加一样,建议谨慎操作 ArrayList是非线程安全的,SynchronizedList是线程安全的数组 ## LinkedList ## LinkedList数组结构是双向链表,也是非线程安全的。双向链表结构对插入和删除时间复杂度一样。 ## 比较 ## 比较的前提是数据量相同的情况下 1.ArrayList更适合随机查找,LinkedList更适合插入和删除 2.都是线程不安全的 3.ArrayList插入和删除的性能跟数组下标有关 4.LinkedList的查询性能跟元素位置有关
相关 Java集合框架中ArrayList和LinkedList的区别 在Java的集合框架中,ArrayList和LinkedList是两种不同的内部实现类,它们主要区别在于存储数据的方式和访问效率。 1. **存储方式**: - Ar 清疚/ 2024年09月15日 14:09/ 0 赞/ 18 阅读
相关 Java集合框架中ArrayList和LinkedList的区别 在Java的集合框架中,ArrayList和LinkedList都是动态数组,但它们在存储元素、添加和删除操作上的性能有显著区别。 1. ArrayList: - **存储方 ╰半夏微凉°/ 2024年09月15日 04:39/ 0 赞/ 15 阅读
相关 Java集合框架中的ArrayList和LinkedList性能对比 在Java集合框架中,ArrayList和LinkedList都是常用的动态数组。它们各有特点,适用于不同的场景。 1. ArrayList: - **插入和删除时间**:由 ╰半橙微兮°/ 2024年09月11日 19:45/ 0 赞/ 24 阅读
相关 Java集合类:ArrayList和LinkedList使用示例 在Java中,ArrayList和LinkedList是两种常用的动态数组。它们都实现了List接口,但内部实现方式不同。 1. ArrayList: - **特点**: 迈不过友情╰/ 2024年09月11日 04:15/ 0 赞/ 32 阅读
相关 Java集合框架中ArrayList和LinkedList的区别案例 在Java集合框架中,ArrayList和LinkedList是两种主要的动态数组。它们各有优缺点,适用于不同的场景。 1. ArrayList(线性表): - 索引访问: 墨蓝/ 2024年09月06日 01:12/ 0 赞/ 22 阅读
相关 Java的list集合、和它的实现类ArrayList、LinkedList 参考[这位博主的介绍][Link 1],总结的很好,有用! java中集合类之间的关系 List接口是继承Collection接口,所以Collection集合中有的方 冷不防/ 2023年02月15日 05:26/ 0 赞/ 50 阅读
相关 JAVA集合之ArrayList和LinkedList 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList优于LinkedList,因 痛定思痛。/ 2022年06月08日 23:39/ 0 赞/ 198 阅读
相关 java集合之LinkedList集合、LinkedList和ArrayList的一些区别 补充 [线程安全Collections.synchronizedList][Collections.synchronizedList] LinkedList和Array 曾经终败给现在/ 2022年05月25日 00:34/ 0 赞/ 177 阅读
相关 《工作笔记》Java中的集合类arraylist和linkedlist ArrayList ArrayList的数据结构是Object数据 当使用 List list = new ArrayList(); ,只是新建了一个空数组 当使 冷不防/ 2022年03月07日 08:44/ 0 赞/ 74 阅读
还没有评论,来说两句吧...