java學習——容器(集合)

    數據量大用對象存儲,對象量大用容器(集合)/數組存儲。然而,數組是定長的,而且要求是同一類型的。html

    存儲方式的不一樣,稱爲數據結構。正由於數據結構不同,因此有這麼多集合類型。java

====================具體方法查API==================== api

容器(集合)地圖:數組

  • Collection【interface】數據結構

    • Set【interface】(無序,不可重複)併發

      • HashSet函數

      • TreeSetspa

    • List【interface】(有序,可重複).net

      • LinkedList線程

      • ArrayList

      • Vector

    • Map【interface】(鍵值對)

      • HashMap

      • TreeMap

      • HashTable

====================具體方法查API====================


在線API地址:http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html


Collection 

    有增(add、addAll)、刪(remove、removeAll)、查(contains)、取(iterator)、取交集(retainAll)、hashCode、equals、size等經常使用方法。

    iterator詳解:

    迭代器接口,調用此方法後,返回一個內部類對象(由於iterator是接口),這個內部類對象是全部集合類型的內部類,對外暴露有三個方法:hasNext、next、remove。

    注意:不管使用何種迭代器,均可以迭代器和集合併發操做(迭代器是集合的引用,對迭代器的操做就是對集合的操做),不然拋出異常。

List

    與擁有Collection的所有方法,另外特有的方法以下:

    增:add(index,element);   addAll(index,collection);

    刪:remove(index);

    改:set(index,element);

    查:get(index);   subList(start,end);  listIterator();

    listIterator迭代器功能比Collection強大,除了包含Collection的方法,還能夠set、previous、hasPrevious等等。

ArrayList

    數組結構存儲的List,增、刪較慢,查較快。初始長度爲10,超出後new一個新數組(長度爲50%原長,Vector爲100%),copy原數組過去。

LinkedList

    鏈表結構存儲的List,增、刪較快,查較慢。

Vector(已拋棄)

    數組結構存儲的List,增、刪、改、查都慢,jdk1.0出現的(當時集合還沒出現),jdk1.2後基本被ArrayList代替,惟一區別是Vector是線程同步的,ArrayList線程不一樣步。具備特有的遍歷方法——枚舉(已被迭代器取代,不建議使用)。

Set

    和Collection方法同樣。

HashSet

    hash表結構存儲的Set,線程非同步。

    添加元素時,先對比hashCode值,再equals判斷(ArrayList是隻經equals判斷),查、刪同理。遍歷可知無序。

TreeSet

    Tree結構存儲的Set,會對集合中的元素進行排序(默認是ASCII碼錶)。添加的元素具有比較性或者Tree集合具有。

    一、元素比較性:添加元素(類)時,此元素(類)必須實現Comparable接口,實現compareTo方法(即定義排序規則)。採用二叉樹判斷法(好比左小右大)排序(元素邊多會自動折中判斷)。順序遍歷,從下到上,從左到右;逆序遍歷從右到左,從下到上

    二、Tree集合一初始化時就具有比較性(參照TreeSet的構造函數):本身寫一個類實現Comparator接口,實現compare方法,而後再構造Tree時傳入該類的實例。【經常使用】

    當元素(1)和容器(2)都具有比較性,以容器(2)爲主。

Map

    存儲鍵值對,增 (put注意返回值、putAll),刪(clear、remove)、判(containsValue、containsKey、isEmpty)、獲(get、size、values取全部的值返回到一個Collection)、entrySet、keySet。【Set的底層就是使用了Map的方法】

Hashtable

    jdk1.0時代,鍵/值不能爲空,線程同步。

HashMap

    jdk1.2出現,鍵/值能夠爲空,線程不一樣步,代替了Hashtable的存在。【注意:null能夠做爲鍵】

TreeMap

    能夠給Map中的鍵排序。

相關文章
相關標籤/搜索