数组ArrayList和List之间的主要区别是什么?

数组的容量是固定的。
一次一个元素。
ArrayList的容量会自动改变。
数组是多维的。
ArrayList 是一维的。
ArrayList 嵌套列表。
数组类型具有良好的性能。
ArrayList 对象类型。
价值型拳击的表现较差。
容量接近,性能也接近。
List 是类型安全的。
引用类型的工作原理类似。
值类型必须考虑装箱。

ArrayList集合特点为什么是增删慢、查询快?

嘿,哥们,你说的我很明白。
几年前做项目的时候我就经历过这个坑。

当时需要经常查看用户信息,而且用户数量还不小,肯定有几千个。
我使用ArrayList,发现每次检查用户时速度都非常快,在几毫秒内输出。
为什么?由于ArrayList底层是数组,并且内存是相连的,所以直接通过索引进行检索就像查字典一样快,时间复杂度为O(1 )。

但是后来需求发生了变化,时不时要添加新用户,删除旧用户。
当我添加和删除一些东西时,我发现它卡住了。
有时后台日志仍然满。
乍一看,ArrayList 扩展并复制元素。
尤其是扩容方面,我们当时的项目,一次扩容复制了几千条用户数据,CPU占用率上升到9 0%,影响了后台的用户请求。

我仍然记得我们的系统在扩展过程中卡住了近十分钟,整个公司的用户都在抱怨。
后来查了一下,原来是ArrayList的一个特性。
一旦数组满了,就需要重新分配,并将旧数据复制到新位置。
这个操作的复杂度是O(n)。

所以你看,场景是如此重要。
如果要检查大量的增删改查,使用ArrayList不是问题。
我用来验证用户信息的项目就是一个例子,性能非常好。
如果您非常频繁地添加和删除,那么使用 LinkedList 可能会更好。
虽然测试速度较慢,但​​添加和删除都是 O(1 )。

我以前从来没有接触过这个领域,所以不敢乱说,但是当我把理论与实践结合起来时,我终于明白了。
何时使用取决于具体情况。

ArrayList、linklist、list的区别

ArrayList 和 LinkedList 之间的区别在于基本结构。

ArrayList使用数组,而LinkedList使用链表。

实现数组和实现链表是完全不同的想法。

数组中的随机搜索很快,但链表很慢。

插入和删除链表很快,但数组很慢。

数组节省内存,但链表占用内存较多。

需要扩展的是数组,而不是链表。

数组适合检查,链表适合修改。

如何选择?这取决于你想做什么。