黑马程序员技术交流社区

标题: List有三个儿子,到底使用谁呢? [打印本页]

作者: bishanshan    时间: 2016-2-27 12:40
标题: List有三个儿子,到底使用谁呢?
???????????????????
作者: 小笼包    时间: 2016-2-27 13:44
A:List的三个子类的特点
*
                ArrayList:
                        底层数据结构是数组,查询快,增删慢。
                        线程不安全,效率高。
                Vector:
                        底层数据结构是数组,查询快,增删慢。
                        线程安全,效率低。
                Vector相对ArrayList查询慢(线程安全的)
                Vector相对LinkedList增删慢(数组结构)
                LinkedList:
                        底层数据结构是链表,查询慢,增删快。
                        线程不安全,效率高。

                Vector和ArrayList的区别
                        Vector是线程安全的,效率低
                        ArrayList是线程不安全的,效率高
                共同点:都是数组实现的
                ArrayList和LinkedList的区别
                        ArrayList底层是数组结果,查询和修改快
                        LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
                共同点:都是线程不安全的
* B:List有三个儿子,我们到底使用谁呢?
                查询多用ArrayList
                增删多用LinkedList
                如果都多ArrayList
作者: liuxiaoye    时间: 2016-2-27 19:27
看你的需求
作者: dulun59    时间: 2016-2-27 20:25
基本上不用Vector 性能太差
作者: 西葫芦虾仁    时间: 2016-2-27 21:00
二楼完美回答
作者: 洋葱头头    时间: 2016-2-27 21:30
arraylist\

作者: 斯麦尔端    时间: 2016-2-28 19:12
根据每个子类不同的特性结合自己的需求来选择
作者: fagug    时间: 2016-2-29 00:20
感觉平时使用ArrayList会多一些,一般操作都是数据查询动作多好像。。。。。
作者: John1211    时间: 2016-2-29 15:46
多数情况用ArrayList,但是由于其线程是不安全的,所以如果使用它来做多线程开发时,需要应用Collections.synchronizedList()方法将其处理为线程安全的集合类!
作者: 超人d咖啡也加糖    时间: 2016-2-29 16:05
自古英雄出二楼




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2