當前位置:成語大全網 - 新華字典 - Java中集合容器類List和Set的用法

Java中集合容器類List和Set的用法

 容器類可以大大提高編程效率和編程能力 在Java 中 所有的容器都由SUN公司的JoshuaBloch進行了重新設計 豐富了容器類庫的功能

 Java 容器類類庫的用途是 保存對象 它分為兩類

 Collection 壹組獨立的元素 通常這些元素都服從某種規則 List必須保持元素特定的順序 而Set不能有重復元素

 Map 壹組成對的 鍵值對 對象 即其元素是成對的對象 最典型的應用就是數據字典 並且還有其它廣泛的應用 另外 Map可以返回其所有鍵組成的Set和其所有值組成的Collection 或其鍵值對組成的Set 並且還可以像數組壹樣擴展多維Map 只要讓Map中鍵值對的每個 值 是壹個Map即可

  叠代器

 叠代器是壹種設計模式 它是壹個對象 它可以遍歷並選擇序列中的對象 而開發人員不需要了解該序列的底層結構 叠代器通常被稱為 輕量級 對象 因為創建它的代價小

 Java中的Iterator功能比較簡單 並且只能單向移動

 ( )使用方法iterator()要求容器返回壹個Iterator 第壹次調用Iterator的next()方法時 它返回序列的第壹個元素

 ( )使用next()獲得序列中的下壹個元素

 ( )使用hasNext()檢查序列中是否還有元素

 ( )使用remove()將叠代器新返回的元素刪除

 Iterator是Java叠代器最簡單的實現 為List設計的ListIterator具有更多的功能 它可以從兩個方向遍歷List 也可以從List中插入和刪除元素

  List的功能方法

 List(interface):次序是List最重要的特點 它確保維護元素特定的順序 List為Collection添加了許多方法 使得能夠向List中間插入與移除元素(只推薦LinkedList使用) 壹個List可以生成ListIterator 使用它可以從兩個方向遍歷List 也可以從List中間插入和刪除元素

 ArrayList:由數組實現的List 它允許對元素進行快速隨機訪問 但是向List中間插入與移除元素的速度很慢 ListIterator只應該用來由後向前遍歷ArrayList 而不是用來插入和刪除元素 因為這比LinkedList開銷要大很多

 LinkedList:對順序訪問進行了優化 向List中間插入與刪除得開銷不大 隨機訪問則相對較慢(可用ArrayList代替) 它具有方法addFirst() addLast() getFirst() getLast() removeFirst() removeLast() 這些方法(沒有在任何接口或基類中定義過)使得LinkedList可以當作堆棧 隊列和雙向隊列使用

  Set的功能方法

 Set(interface):存入Set的每個元素必須是唯壹的 因為Set不保存重復元素 加入Set的Object必須定義equals()方法以確保對象的唯壹性 Set與Collection有完全壹樣的接口 Set接口不保證維護元素的次序

 HashSet:為快速查找而設計的Set 存入HashSet的對象必須定義hashCode()

 TreeSet:保持次序的Set 底層為樹結構 使用它可以從Set中提取有序的序列

 LinkedHashSet:具有HashSet的查詢速度 且內部使用鏈表維護元素的順序(插入的次序) 於是在使用叠代器遍歷Set時 結果會按元素插入的次序顯示

lishixinzhi/Article/program/Java/ky/201311/28073