码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合的区别和选择

时间:2017-04-08 22:37:38      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:str   数据   equal   lis   效率   vector   有序   tree   bsp   

 

              Collection

                   |--List       有序,可重复

                            |--ArrayList

                                     底层数据结构是数组,查询快,增删慢。

                                     线程不安全,效率高

                            |--Vector

                                     底层数据结构是数组,查询快,增删慢。

                                     线程安全,效率低

                            |--LinkedList

                                     底层数据结构是链表,查询慢,增删快。

                                     线程不安全,效率高

                   |--Set        无序,唯一

                            |--HashSet

                                     底层数据结构是哈希表。

                                     如何保证元素唯一性的呢?

                                               依赖两个方法:hashCode()和equals()

                                               开发中自动生成这两个方法即可

                                     |--LinkedHashSet

                                               底层数据结构是链表和哈希表

                                               由链表保证元素有序

                                               由哈希表保证元素唯一

                            |--TreeSet

                                     底层数据结构是红黑树。

                                     如何保证元素排序的呢?

                                               自然排序

                                               比较器排序

                                     如何保证元素唯一性的呢?

                                               根据比较的返回值是否是0来决定

 

如何选择

                唯一吗?

                   是:Set

                            排序吗?

                                     是:TreeSet

                                     否:HashSet

                   如果你知道是Set,但是不知道是哪个Set,就用HashSet。                          

                   否:List

                            要安全吗?

                                     是:Vector

                                     否:ArrayList或者LinkedList

                                               查询多:ArrayList

                                               增删多:LinkedList

                   如果你知道是List,但是不知道是哪个List,就用ArrayList。     

         如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。     

         如果你知道用集合,就用ArrayList。

Java集合的区别和选择

标签:str   数据   equal   lis   效率   vector   有序   tree   bsp   

原文地址:http://www.cnblogs.com/corolcorona/p/6683144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!