您的位置:首页 > 编程语言 > Java开发

Java基础针对自己薄弱环节总结06(集合全)

2015-09-03 17:27 281 查看

java中的集合体系

一、Collection(单列)

1、List(有序,可重复)

1)、ArrayList

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

                   线程不安全,效率高。

2)、Vector

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

                线程安全,效率低。

3)、LinkedList   

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

                 线程不安全,效率高。

  2、Set(可能无序,肯定唯一)

1)、HashSet

                底层数据结构是哈希表。

                 线程不安全,效率高。

 

                 怎么保证唯一性的呢?

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

                     顺序:

                           首先判断hashCode()值是否相同。

                          相同:继续走equals(),看返回值

                                 如果true:就不添加到集合。

                                 如果false:就添加到集合。

                           不同:就添加到集合。

2)、TreeSet

                 底层数据结构是二叉树。

                 线程不安全,效率高。

 

                  怎么保证唯一性的呢?是根据返回是否是0。

                  怎么保证排序的呢?两种方式

                              自然排序(元素具备比较性)

                                   实现Comparable接口

                              比较器排序(集合具备比较性)

                                   实现Comparator接口

 

二、Map(双列 底层结构是针对键有效,跟值无关)

1、HashMap

            底层数据结构是哈希表。

            线程不安全,效率高。允许null键和值

 

              怎么保证唯一性的呢?

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

              顺序:

                 首先判断hashCode()值是否相同。

                   同:继续走equals(),看返回值

                        如果true:就不添加到集合。

                        如果false:就添加到集合。

                    不同:就添加到集合。

2、Hashtable

                    底层数据结构是哈希表。

                    线程安全,效率低。不允许null键和值

 

                    怎么保证唯一性的呢?

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

                    顺序:

                         首先判断hashCode()值是否相同。

                         同:继续走equals(),看返回值

                              如果true:就不添加到集合。

                              如果false:就添加到集合。

                         不同:就添加到集合。

3、TreeMap

                   底层数据结构是二叉树。

                    线程不安全,效率高。

 

                    怎么保证唯一性的呢?是根据返回是否是0。

                    怎么保证排序的呢?两种方式

                         自然排序(元素具备比较性)

                              实现Comparable接口

                         比较器排序(集合具备比较性)

                              实现Comparator接口

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: