集合list和set的特性(来自一位菜鸟)

Collection

       List

              ArrayList(*)

              LinkedList

              Vector

              Stack

       Set

              HashSet(*)

              TreeSet

              LinkedHashSet

       Queue

              LinkedList

Map

       HashMap(*)

       TreeMap

       LinkedHashMap

       Hashtable

              Properties(*)


Collection:    Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。                              JavaSDK不提供直接继承自Collection的类,JavaSDK提供的类都是继承自Collection子接口List和                          Set

      List:元素是有序的,元素可以重复。因为该集合体系有索引。

           ArrayList:底层的数据结构使用的是顺序结构。特点:查询速度很快。但是增删稍慢。线程不同步。

           LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。

            Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。

            Stack:它用于模拟了“栈”这种数据结构,“栈”通常是指“后进先出”的容器。

      Set:元素是无序,元素不可以重复。

             HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证                               该顺序恒久不变,此类允许使用null元素。

             TreeSet:使用元素的自然顺序对元素进行排序

             LinkedHashSet:使用链表维护了一个添加进集合中的顺序。导致当我们遍历LinkedHashSet集合元素时,是按照添                                          加进去的顺序遍历的!

      Queue基本上,一个队列就是一个先入先出(FIFO)的数据结构

             LinkedList :是一种双向的链式结构


你可能感兴趣的:(集合list和set的特性(来自一位菜鸟))