ArryaList和LinkedList性能分析和适用场景
来源:互联网 发布:mac里的照片怎么导出 编辑:程序博客网 时间:2024/06/02 00:22
ArrayList和LinkedList
我们先说性能方面;
1.插入:
ArrayList是单向链表,底层是数组存储形式,在添加的时候,如果添加在ArrayList尾部,则性能更快于LinkedList,但是在List中添加完元素之后,导致超过底层数组的长度,就会垃圾回收原来的数组,并且用System.copyArray赋值到新的数组当中,这开销就会变大,而LikedList在插入时候,明显高于ArrayList,因为LinkedList是双向链表,但是在如果index(要插入的位置==size)则就不会进行entry(index)查找,如果不等于则就会进行查找操作,这个也是LinkedList开销比较大得地方,即使这样性能也明显高于ArrayList;
2.删除:
ArrayList 整体的会向前移动一格,然后再要删除的index位置置空操作,ArrayList的remove要比add的时候更快,因为不用再复制到新的数组当中了
LikedList 的remove操作相对于ArrayList remove更快。
3. 使用与场景
但是在大部分情况下ArrayList性能不行优于LinkedList,但是如果是经常进行插入,删除操作则就会使用LinkedList会好很多。
0 0
- ArryaList和LinkedList性能分析和适用场景
- LinkedList, ArrayList等使用场景和性能分析)
- ArrayList和LinkedList性能分析
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列之 List总结(LinkedList, ArrayLis,vector,stack等使用场景和性能分析)
- java集合--List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java【集合系列】-08-List总结(LinkedList, ArrayList等使用场景和性能分析)
- ArrayList和LinkedList性能比较分析
- ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景
- ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景
- memcache适用和不适用场景总结
- MongoDB适用和不适用场景总结
- memcache适用和不适用场景
- Python3科学计算库的安装
- 用CE来找出对对碰游戏 坐位号基址,棋盘数组基址 并把它读出来
- 第一周《C语言及程序设计》实践项目7 分支结构程序体验
- fread和read的区别
- ZZULIOJ 1908: 小火山的围棋梦想 (DFS)
- ArryaList和LinkedList性能分析和适用场景
- POJ 2251 Dungeon Master
- Matrix
- JAVA类的访问权限
- Android自定义侧滑菜单简单示例
- UVa 1642 魔法GCD + 区间问题总结
- 平衡二叉树理解
- Log 中dalvikvm 信息解析
- JS 和Jquery 绑定事件