java集合

首先我们要对JAVA常用的集合类的概括和继承关系要有一个初步的认识,我这里简单画了一个图形表示常用结合类的接口、对象的继承和实现关系如下图所示:

  5366342_1271770939wgo2.jpg

集合框架内容:

 Connection 

  —–List(元素可重复.有序的对象)

     @1—–Vector:底层是数组数据结构

     @2—–ArrayList:底层是数组数据结构

     @3—–LinkedList:链表式数据结构

   —–Set(元素唯一,无序的对象)

    @1—–HashSet:底层数据结构是哈希表;底层就是hashMap来实现存取

       是通过元素的两个方法,hashCode和equals来完成,如果元素的HashCode值相同,则会调用判断equals方法是否为true,hashcode值不相同,则不会调用equals方法。判断和删除的依据:依赖于方法元素的hashCode和equals来完成

         @2—-TreeSet:可以对Set集合元素进行排序(自然排序):底层的数据结构式二叉树,保证数据唯一性的依据是:通过Compareto方法。

                   TreeSet排序的第一种方式:让元素自身具备比较性。

                      元素需要实现Comparable接口,覆盖compareTo方法。也种方式也成为元素的自然顺序,或者叫做默认顺序。(必须String就是自然排序          

              TreeSet的第二种排序方式(比较器)。
                    当元素自身不具备比较性时,或者具备的比较性不是所需要的。
                    这时就需要让集合自身具备比较性。
                    在集合初始化时,就有了比较方式。(必须String排序不符合自己的业务需求)

                     TreetSet set=new TreetSet(new MyCompare)

     —–Map(提供Key(不允许重复)到Value(允许重复)的映射)

          @1—–HashMap 底层数据结果就是哈希借给的数组链表方式

          @2—–TreeMap 底层的数据结构式是通过红黑树算法来实现 可以参考:http://cmsblogs.com/?p=1013

           上述:事业务情况而定,

          @3——HashTable:底层是哈希表;继承Dictionary类,线程安全,不允许为null

       —–Queue Queue用于模拟"队列"这种数据结构(先进先出 FIFO)。队列的头部保存着队列中存放时间最长的元素,队列的尾部保存着队列中存放时间最短的元素。新元素插入(offer)到队列的尾部访问元素(poll)操作会返回队列头部的元素peek 获取最后的一个元素,队列不允许随机访问队列中的元素。结合生活中常见的排队就会很好理解这个概念。


   在下面的这段时间里我们将深入分析Java集合框架的源码,分析其实现的原理过程:可以提前查看 MyCsdn   http://blog.csdn.net/tang06211015/article/category/2556207


发表评论