Arraylist和Linkedlist区别:
来源:互联网 发布:ubuntu 16.04 uuid 编辑:程序博客网 时间:2024/06/06 13:56
ArrayList:
运用场景:数据不经常改变
1)以数组的形式存储数据,默认长度是10 ;
2)插入,新增,删除效率低;查询速度快(根据index索引查询) (删除后的位置向前移动,新增进行容器的check,如果容器大小不够,元素默认添加到到list最后面,则将原来的容器增大到二分之一倍,在这种还不够的情况下,则增加到最小要求的容器长度;插入/删除涉及到元素的移动所以效率低);
3)非线程安全,非同步,只能用在单线程环境下,多线程环境可以考虑用,如果想要线程安全使用Collections.synchronizedList(List l) 函数返回一个线程安全的Arraylist类,也可以使用Concurrent并发包的copyWriteArraylist;
4)增长因子:数据增长为原来的一半
LinkedList:
运用场景:没有大规模的随机读取,大量的增加/删除操作
1)以链表的形式存储数据;
2)插入/删除效率高(如:A,B,C在B,C中间插入一个E,只要记住B,C的位置即可=>记住E元素的前后位置);
3)LinkedList是线程不安全的;
阅读全文
0 1
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别?
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- LinkedList 和 ArrayList 区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别
- Div+Css+JS做弹出窗口
- VLAN原理详解
- sass学习记录
- Ubuntu下添加开机启动项的2种方法
- Let's Encrypt将在2018年初支持IETF标准化ACME v2协议
- Arraylist和Linkedlist区别:
- Android 开发过程中遇到的问题Error:Execution failed for task ':app:processDebugManifest'
- 前端跨域请求解决方案汇总
- 开发中代码块提高工作效率(偷懒)
- 从零开始ReactNative,踩过的坑:CFBundleIdentifier", Does Not Exist
- mysql的binary、char、varchar区别
- tensorflow几个函数讲解
- CommonJS,AMD模块化规范
- 怎样用云计算来进行软件恢复?