Java常用類之Collections

來源:互聯網
上載者:User

注意不是Collection(介面),是Collections(s不可掉)。
對於Collections類的定義可以用一句話來描述"該類只提供了一些靜態方法(實際上有三個常量),通過這些方法可以對集合對象進行操作或返回集合對象。"下面對其所提供方法進行簡單介紹。
Collections類中對List對象(即實現了List介面的集合類)提供查詢、拷貝、填充、排序、亂序、倒置、交換等方法。
需要說明的一點是,對於Java,需要深入掌握的是他的內部機制和原理。對於API掌握到一定的程度就可以了,用得多了,就自然熟悉了。同時,應該多看高手寫的程式。到要用的時候,現查現用。但基本的是需要瞭解JAVA
API的架構。
①public static int binarySearch(List List,Object obj)
②public
static void copy(List dest,List src)
③public static void fill(List
List,Object obj)
④public static void shuffle(List List)//亂序
⑤public static
void reverse(List List)//倒置
⑥public swap(List List,int i,int
j)//交換

Collections類中對Collection對象(即實現了Collection介面的集合類)提供最大和最小值的方法。其定義如下:
①public
static Object max(Collection coll)
②public static Object max(Collection
coll,Comparator comp)
③public static Object min(Collection coll)
④public
static Object min(Collection coll,Comparator comp)
關於Comparator將在以後的複習中進行描述。

同步
“集合架構”中的List,Set和Map類所提供的方法是非同步的,即不是安全執行緒的,這使得對集合對象的操作更快,效率更高,這也是它們與曆史集合類Vector、Hashtable的不同。但若將這些非同步的集合對象應用到多線程的環境下,即有多個線程同時訪問一個集合對象,且至少有一個線程需要更改該對象的情況下,則必須對該集合對象進行外同步操作。該外同步操作
通過Collections類所提供的synchronized()方法來實現,通常是在集合對象的構造方法時完成該同步操作。較為典型的樣本如下:
針對ArrayList類,外同步的實現為:
List
List=Collections.synchronizedList(new
ArrayList());
此外還需注意,對已同步的集合對象進行迭代操作時,還必須通過
關鍵字synchronizeed對所獲得的迭代器對象進行同步,
否則程式會產生不確定的結果。典型執行個體如下:
List
list=Collections.synchronizedList(new
ArrayList());
...
...
synchronized(list)
{
    Iterator
i=list.iterator();
    while(i.hasNext())
    {
        
foo(i.next());
    }
}

唯讀(不可更改)
集合的唯讀處理是指當所有必要的元素都添加到集合後,為避免意外操作修改集合,
而對集合所施加的不可更改操作。Collections類可對Collection對象、List對象、
Set對象、SortedSet對象、Map對象、SortedMap對象進行上述唯讀處理,其方法描述
如下:
①public
static Collection unmodifiableCollection(Collection coll)
②public static Set
unmodifiableSet(Set set)
③public static SortedSet
unmodifiableSortedSet(SortedSet sortedSet)
④public static List
unmodifiableList(List list)
⑤public static Map unmodifiableMap(Map
map)
⑥public static SortedMap unmodifiableSortedMap(SortedMap
sortedMap)

另外,Collections還可以針對Set、List、Map對象建立不可更改的單子(SingleIton集合),
稍後會進行補充。
樣本程式下次補上。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.