直掛云帆濟滄海,展翅遨翔登九天!

          我要飛得更高...

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            19 隨筆 :: 0 文章 :: 5 評論 :: 0 Trackbacks
                  Java中有關數據結構的類都在java.util包中,集合框架是每一個程序員都應該熟練掌握的一個類庫。Java的集合框架可以提供處理對象的標準方式。在很早的jdk版本中,只提供了Dictionary、Vector、Stack、Properties來存儲和操作對象。這些類之間沒有統一的api,使用這些類達不到易擴展的作用。
                  當然我們使用這些數據結構目的也是為了使用方便,能夠提供高效的存取。學過數據結構的朋友們都知道,鏈表和哈希表的結構的效率都是較高的。為了使用不同的集合之間能夠相互操作,相互擴展,那么使用通用的接口將是一個較好的選擇。所以整個集合框架被設計成了一系列的標準的接口。在Collections類中有許多靜態的算法方法。Iterator迭代器接口提供了通用的訪問集合元素的方式,因為每一個集合都實現了Iterator接口。除了集合,還提供了映射的接口和類。比方說Map就提供了存儲鍵值對。雖然它不是集合,但也被整合到了集合中。目前所有的集合都是基于泛型的。
                  下面介紹集合框架中的幾個常用的接口:
          1.Collection 允許處理一組對象,位于集合層次結構的頂部
          2.List  擴展Collection接口以處理序列
          3.Queue  擴展Collection接口以處理列表中的特殊類型,其元素只能從前面刪除
          4.Set  擴展Collection接口以處理集合,集合中的元素必須是唯一的
          5.SortedSet  擴展Set接口以處理排序的集合
          當然除了上述的接口外,集合中還使用Copmarator、Iterator、ListIterator等接口 。
                  Collection接口是構造集合框架的基礎,必須被定義集合的任意類實現,同樣它也是一個泛型接口。
          方法摘要
           boolean add(E o)
                    確保此 collection 包含指定的元素(可選操作)。
           boolean addAll(Collection<? extends E> c)
                    將指定 collection 中的所有元素都添加到此 collection 中(可選操作)。
           void clear()
                    移除此 collection 中的所有元素(可選操作)。
           boolean contains(Object o)
                    如果此 collection 包含指定的元素,則返回 true
           boolean containsAll(Collection<?> c)
                    如果此 collection 包含指定 collection 中的所有元素,則返回 true
           boolean equals(Object o)
                    比較此 collection 與指定對象是否相等。
           int hashCode()
                    返回此 collection 的哈希碼值。
           boolean isEmpty()
                    如果此 collection 不包含元素,則返回 true
           Iterator<E> iterator()
                    返回在此 collection 的元素上進行迭代的迭代器。
           boolean remove(Object o)
                    從此 collection 中移除指定元素的單個實例,如果存在的話(可選操作)。
           boolean removeAll(Collection<?> c)
                    移除此 collection 中那些也包含在指定 collection 中的所有元素(可選操作)。
           boolean retainAll(Collection<?> c)
                    僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。
           int size()
                    返回此 collection 中的元素數。
           Object[] toArray()
                    返回包含此 collection 中所有元素的數組。
          <T> T[]
          toArray(T[] a)
                    返回包含此 collection 中所有元素的數組;返回數組的運行時類型與指定數組的運行時類型相同。
          List接口:
          該接口擴展了Collection接口,它聲明集合是存儲一個序列的元素。我們可以把它看成是動態數組。學過數據結構的朋友都知道,數組可以使用基于0的索引,對于泛型的List接口而言,他可以指定保存不同的對象類型。
          方法摘要
           boolean add(E o)
                    向列表的尾部追加指定的元素(可選操作)。
           void add(int index, E element)
                    在列表的指定位置插入指定元素(可選操作)。
           boolean addAll(Collection<? extends E> c)
                    追加指定 collection 中的所有元素到此列表的結尾,順序是指定 collection 的迭代器返回這些元素的順序(可選操作)。
           boolean addAll(int index, Collection<? extends E> c)
                    將指定 collection 中的所有元素都插入到列表中的指定位置(可選操作)。
           void clear()
                    從列表中移除所有元素(可選操作)。
           boolean contains(Object o)
                    如果列表包含指定的元素,則返回 true
           boolean containsAll(Collection<?> c)
                    如果列表包含指定 collection 的所有元素,則返回 true
           boolean equals(Object o)
                    比較指定的對象與列表是否相等。
           E get(int index)
                    返回列表中指定位置的元素。
           int hashCode()
                    返回列表的哈希碼值。
           int indexOf(Object o)
                    返回列表中首次出現指定元素的索引,如果列表不包含此元素,則返回 -1。
           boolean isEmpty()
                    如果列表不包含元素,則返回 true
           Iterator<E> iterator()
                    返回以正確順序在列表的元素上進行迭代的迭代器。
           int lastIndexOf(Object o)
                    返回列表中最后出現指定元素的索引,如果列表不包含此元素,則返回 -1。
           ListIterator<E> listIterator()
                    返回列表中元素的列表迭代器(以正確的順序)。
           ListIterator<E> listIterator(int index)
                    返回列表中元素的列表迭代器(以正確的順序),從列表的指定位置開始。
           E remove(int index)
                    移除列表中指定位置的元素(可選操作)。
           boolean remove(Object o)
                    移除列表中出現的首個指定元素(可選操作)。
           boolean removeAll(Collection<?> c)
                    從列表中移除指定 collection 中包含的所有元素(可選操作)。
           boolean retainAll(Collection<?> c)
                    僅在列表中保留指定 collection 中所包含的元素(可選操作)。
           E set(int index, E element)
                    用指定元素替換列表中指定位置的元素(可選操作)。
           int size()
                    返回列表中的元素數。
           List<E> subList(int fromIndex, int toIndex)
                    返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之間的部分視圖。
           Object[] toArray()
                    返回以正確順序包含列表中的所有元素的數組。
          <T> T[]
          toArray(T[] a)
                    返回以正確順序包含列表中所有元素的數組;返回數組的運行時類型是指定數組的運行時類型。
          相對于Collection接口而言,List接口增加了add(int index, E element),add(int index,Collection c)方法,這些方法用于將元素插入到特定的位置,這也是動態數組的特性。
          Set接口:
          該接口擴展了Collection接口,但不允許有相同的存在的元素,而上述的List接口卻沒有此約束,其實很好理解,我們可以把它想象成數學中的集合,在那種集合中,是不允許有相同的元素的。
          SortedSet接口擴展了Set接口,此接口是升序的集合,由于是有序的,所有自然其中的數據元素是有意義的,否則升序的算法無從使用起。自然就不能存在為null的對象。下表是該接口特有的方法:
          方法摘要
           Comparator<? super E comparator()
                    返回與此有序集合關聯的比較器,如果使用元素的自然順序,則返回 null
           E first()
                    返回此有序集合中當前第一個(最小的)元素。
           SortedSet<E> headSet(E toElement)
                    返回此有序集合的部分視圖,其元素嚴格小于 toElement
           E last()
                    返回此有序集合中最后一個(最大的)元素。
           SortedSet<E> subSet(E fromElement, E toElement)
                    返回此有序集合的部分視圖,元素范圍從 fromElement(包括)到 toElement(不包括)。
           SortedSet<E> tailSet(E fromElement)
                    返回此有序集合的部分視圖,其元素大于或等于 fromElement
          Queue接口:
          這個接口在1.4的版本中是沒有,新增的。看名字就知道是隊列,先進先出。
          方法摘要
           E element()
                    檢索,但是不移除此隊列的頭。
           boolean offer(E o)
                    如果可能,將指定的元素插入此隊列。
           E peek()
                    檢索,但是不移除此隊列的頭,如果此隊列為空,則返回 null
           E poll()
                    檢索并移除此隊列的頭,如果此隊列為空,則返回 null
           E remove()
                    檢索并移除此隊列的頭。
          從隊列頂部刪除元素 。
          posted on 2008-08-15 19:03 周大俠 閱讀(252) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 东莞市| 西城区| 连山| 永城市| 临沂市| 房产| 团风县| 云龙县| 鄂伦春自治旗| 永城市| 呈贡县| 视频| 呼和浩特市| 裕民县| 阿克陶县| 红安县| 桂东县| 招远市| 新余市| 东城区| 阿勒泰市| 家居| 石棉县| 新昌县| 开原市| 宁河县| SHOW| 大理市| 龙山县| 手游| 潼关县| 大洼县| 普兰县| 大同县| 色达县| 丽江市| 睢宁县| 定远县| 宜春市| 蚌埠市| 文水县|