程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java使用實現面向對象編程:第七章集合框架的解讀=>重中之重,面向對象編程之重

Java使用實現面向對象編程:第七章集合框架的解讀=>重中之重,面向對象編程之重

編輯:JAVA綜合教程

Java使用實現面向對象編程:第七章集合框架的解讀=>重中之重,面向對象編程之重


對於集合框架,是非常重要的知識,是程序員必須要知道的知識點。

但是我們為什麼要引入集合框架呢?

我們之前用過數組存儲數據,但是采用數組存儲存在了很多的缺陷。而現在我們引用了集合框架,可以完全彌補了數組的缺陷。它靈活,使用,提高軟件的開發效率。並且不同的集合適用於不同的場合。

集合框架的好處:

 1.容量自增長;
  2. 提供有用的數據結構和算法,從而減少編程工作;
  3. 提高了程序速度和質量,因為它提供了高性能的數據結構和算法;
  4. 允許不同 API 之間的互操作,API之間可以來回傳遞集合;
  5. 可以方便地擴展或改寫集合。

集合框架是為表示和操作集合而規定的一種統一的標准的體系結構。
任何集合框架都包含三大塊內容:對外的接口、接口的實現和對集合運算的算法。
 接口:即表示集合的抽象數據類型。接口提供了讓我們對集合中所表示的內容進行單獨操作的可能。
  實現:也就是集合框架中接口的具體實現。實際它們就是那些可復用的數據結構。
  算法:在一個實現了某個集合框架中的接口的對象身上完成某種有用的計算的方法,例如查找、排序等。這些算法通常是多態的,因為相同的方法可以在同一個接口被多個類實現時有不同的表現。
事實上,算法是可復用的函數。

它減少了程序設計的辛勞。
集合框架通過提供有用的數據結構和算法使你能集中注意力於你的程序的重要部分上,而不是為了讓程序能正常運轉而將注意力於低層設計上。
通過這些在無關API之間的簡易的互用性,使你免除了為改編對象或轉換代碼以便聯合這些API而去寫大量的代碼。 它提高了程序速度和質量。
集合框架通過提供對有用的數據結構和算法的高性能和高質量的實現使你的程序速度和質量得到提高。因為每個接口的實現是可互換的,所以你的程序可以很容易的通過改變一個實現而進行調整。
另外,你將可以從寫你自己的數據結構的苦差事中解脫出來,從而有更多時間關注於程序其它部分的質量和性能。
減少去學習和使用新的API 的辛勞。 許多API天生的有對集合的存儲和獲取。
在過去,這樣的API都有一些子API幫助操縱它的集合內容,因此在那些特殊的子API之間就會缺乏一致性,你也不得不從零開始學習,並且在使用時也很容易犯錯。而標准集合框架接口的出現使這個問題迎刃而解。
減少了設計新API的努力。 設計者和實現者不用再在每次創建一種依賴於集合內容的API時重新設計,他們只要使用標准集合框架的接口即可。 集合框架鼓勵軟件的復用。 對於遵照標准集合框架接口的新的數據結構天生即是可復用的。
同樣對於操作一個實現了這些接口的對象的算法也是如此。 有了這些優點,並通過合理的使用,它就會成為程序員的一種強大的工具。不過,從歷史上來看,集合大多其結構相當復雜,也就給它們一個造成極不合理的學習曲線的壞名聲。
但是,希望Java2的集合框架能縮短你的學習曲線,從而快速掌握它

現在我們了解集合框架的內容簡圖:

從該簡圖可以看出:
java集合接口


Java中集合類定義主要是java.util.*包下面,常用的集合在系統中定義了三大接口,這三類的區別是:
java.util.Set接口及其子類,set提供的是一個無序的集合;
java.util.List接口及其子類,List提供的是一個有序的集合;
java.util.Map接口及其子類,Map提供了一個映射(對應)關系的集合數據結構;
另外,在JDK5中新增了Queue(隊列)接口及其子類,提供了基於隊列的集合體系。每種集合,都可以理解為用來在內存中存放一組對象的某種”容器“---就像數組,就像前面我們自己定義的隊列。

Collection接口

Collection接口是所有集合接口的基類,提供了集合接口的通用操作



public interface Collection<E> extends Iterable<E> {
    // Basic operations
    int size();
    boolean isEmpty();
    boolean contains(Object element);
    boolean add(E element);         //optional
    boolean remove(Object element); //optional
    Iterator<E> iterator();
    // Bulk operations
    boolean containsAll(Collection<?> c);
    boolean addAll(Collection<? extends E> c); //optional
    boolean removeAll(Collection<?> c);        //optional
    boolean retainAll(Collection<?> c);        //optional
    void clear();                              //optional
    // Array operations
    Object[] toArray();
    <T> T[] toArray(T[] a);
}

通過這些操作函數,我們可以進行獲取集合中元素的個數 (sizeisEmpty),判斷集合中是否包含某個元素(contains),在集合中增加或刪除元素(addremove),獲取訪問迭代器(iterator)等操作。

迭代器

迭代器(Iterator)可以用來遍歷集合並對集合中的元素進行刪操作。 可以通過集合的iterator 函數獲取該集合的迭代器。 Iterator接口如下所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved