java中的容器類

來源:互聯網
上載者:User

本文是從《java程式員面試寶典》摘抄出來的。

(1) java容器類一共有兩種主要類型: collection和map。

collection和map的區別在於每個“槽”所儲存的元素個數不同。collection類型中,每個“槽”只有一個元素;map中,持有key-value關聯,像一個小型資料庫。所有的java容器類都可以自動調整自己的尺寸。

(2) 各自旗下的子類別關係。

collection的子類如下:

  • --List

               --ArrayList:

               --LinkedList:

  • --Set: 每個值只能儲存1個對象,不能含有重複的元素。

               --HashSet

               --TreeSet

               --LinkedHashSet

  • Queue:先進先出的集合類

collection,list,set,map都是介面,不能執行個體化。繼承自它們的ArrayList,HashTable,stack是具體的class,這些才可以被執行個體化。

Vector容器確切的知道它所持有的對象的type,vector不進行邊界檢查。

(3) Collections類

這個類是針對集合類的一個協助類,它提供了一系列的靜態方法實現對各種集合類的搜尋,排序等操作。相當於對Array進行類似操作的類--Arrays。如:

Collections.max(Collection col);

Collection.sort(List list);

(4)一些特殊的集合類是安全執行緒的,請參考這篇文章

http://www.ibm.com/developerworks/library/j-jtp07233/index.html

(5) 如何選擇容器類

1,容器類和array的區別。

容器類僅能儲存物件引用,而不是將對象複製一份放入數列的某個位置。對於primitive data,如int等,放入容器類和取出時就會被自動裝箱,拆箱。

List,set,map將其中所有儲存的對象視為object,也就是說一旦對象進入容器類,就損失了對象的type資訊。例如:

public static void main(String arg[]){int[] x = {'A'};ArrayList a = new ArrayList();for(int i=0;i<x.length;i++){a.add(x[i]);}int j = (Integer) a.get(0); //這裡如果不進行類型轉換,則不能通過編譯。System.out.print(j); //這裡列印出來的是A的asc碼,65.    }

或者使用泛型:

public static void main(String arg[]){int[] x = {'A'};ArrayList<Integer> a = new ArrayList<Integer>(); //注意這裡只能是Integer而不是int,再次說明容器類只能裝載對象,int這類非對象是不能直接裝入的。for(int i=0;i<x.length;i++){a.add(x[i]);}int j = a.get(0); //此時就不必進行類型轉換了。System.out.print(j);    }

通過上例可以發現int[] x={'A'};並不會報錯,這是因為array天生就具有了類似泛型的功能:只要通過編譯,運行時就不會出錯。array會檢查放入其中的元素的類型,如果這句改為int[] x={“A”};則無法通過編譯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.