集合框架工具類以及新特性
一、Collections:集合框架的工具類,裏面的方法都是靜態的。
排序:方法可以List集合進行指定自然順序的排序,所以List集合的對象要具備排序的功能,即實現Comparable接口。演示如下,
可以自定義該方法,如下所示
List裏面的泛型不用?的原因:可以把?當成Object,只能調用Object類的方法。
根據比較器排序,這裏講解一個根據字符串長度排序。Collections類裏面有這個方法
自定義該方法如下:
二分查找:
只能對List進行二分查找,演示如下:
使用二分搜索法搜索指定列表,以獲得指定對象。在進行此調用之前,必須根據列表元素的自然順序或者比較器對列表進行升序排序(通過 sort(List)
方法)。
如果沒有對列表進行排序,則結果是不確定的,排序方式自己定義。
如果查找到了目標元素,則返回對應索引,沒查到,則返回的值為應該在的索引值前加—,再減1。
最值:獲取最大最小值,可以對List和Set集合使用。
前面一種是根據自然排序,後面一種是根據字符串的長度排序。
逆轉:
reverseOrder方法可以將實現了自然排序的集合進行逆轉,該方法原理如下,把位置換了一下,就實現了逆序。
如果自帶比較器,也可以把實現了比較器的集合進行逆轉。如下所示,根據長度逆轉,
如果對Iist集合進行排序,可以先逆轉,再排序。reverse方法。
替換:
其原理就是list.set(list.indexOf("zhaoliu"),"cendz")。
其他方法:
運行幾次的結果都不一樣,可以用來打亂順序。比如洗撲克牌。
可以和枚舉互換,因為老代碼裏面有枚舉。
Vector集合是同步的,其他集合是非同步的,如果遇到了多線程怎麽辦?自己加鎖。如何給非同步的集合加鎖?
集合框架工具類以及新特性