1. 程式人生 > >集合框架工具類以及新特性

集合框架工具類以及新特性

alt com 最大 最小值 .com 元素 eve strong 獲取

一、Collections:集合框架的工具類,裏面的方法都是靜態的。

  

排序:方法可以List集合進行指定自然順序的排序,所以List集合的對象要具備排序的功能,即實現Comparable接口。演示如下,

  技術分享圖片技術分享圖片

  可以自定義該方法,如下所示

  技術分享圖片技術分享圖片

    技術分享圖片

    List裏面的泛型不用?的原因:可以把?當成Object,只能調用Object類的方法。

    根據比較器排序,這裏講解一個根據字符串長度排序。Collections類裏面有這個方法

    技術分享圖片

  技術分享圖片技術分享圖片

    自定義該方法如下:

  技術分享圖片

二分查找:

  技術分享圖片

  技術分享圖片

  只能對List進行二分查找,演示如下:

  技術分享圖片技術分享圖片

  技術分享圖片技術分享圖片

   使用二分搜索法搜索指定列表,以獲得指定對象。在進行此調用之前,必須根據列表元素的自然順序或者比較器對列表進行升序排序(通過 sort(List) 方法)。

    如果沒有對列表進行排序,則結果是不確定的,排序方式自己定義。

  如果查找到了目標元素,則返回對應索引,沒查到,則返回的值為應該在的索引值前加—,再減1。

  

最值:獲取最大最小值,可以對List和Set集合使用。

  技術分享圖片

  技術分享圖片技術分享圖片

  技術分享圖片技術分享圖片

  前面一種是根據自然排序,後面一種是根據字符串的長度排序。

逆轉:

  技術分享圖片

  技術分享圖片技術分享圖片

  技術分享圖片技術分享圖片

  reverseOrder方法可以將實現了自然排序的集合進行逆轉,該方法原理如下,把位置換了一下,就實現了逆序。

  技術分享圖片

  如果自帶比較器,也可以把實現了比較器的集合進行逆轉。如下所示,根據長度逆轉,

  技術分享圖片

  技術分享圖片

  如果對Iist集合進行排序,可以先逆轉,再排序。reverse方法。

替換:

  技術分享圖片

  技術分享圖片技術分享圖片

  其原理就是list.set(list.indexOf("zhaoliu"),"cendz")。

其他方法:

  技術分享圖片

  技術分享圖片技術分享圖片

  技術分享圖片

  技術分享圖片技術分享圖片

  技術分享圖片

  運行幾次的結果都不一樣,可以用來打亂順序。比如洗撲克牌。

  技術分享圖片

  技術分享圖片

  可以和枚舉互換,因為老代碼裏面有枚舉。

Vector集合是同步的,其他集合是非同步的,如果遇到了多線程怎麽辦?自己加鎖。如何給非同步的集合加鎖?

  

  

集合框架工具類以及新特性