複習完了集合框架,再來看一下collections工具類的一些基本用法,更加完善集合框架的知識庫。
1、什麼是collections呢?
collections是對集合框架的乙個工具類。它裡邊的方法都是靜態的,不需要建立物件。並未封裝特有資料。在collections工具類中大部分方法是用於對list集合進行操作的,如比較,二分查詢,隨機排序等。
這裡注意的是,collections和collection是不同的。
那麼collection和collections的區別?
(1)collection:是單列集合的頂層介面,有子介面list和set。
(2)collections:是針對集合操作的工具類,有對集合進行排序和二分查詢的方法
collecitons中的常見方法
public static void sort(listlist)
public static int binarysearch(list<?> list,t key)
public static t max(collection<?> coll)
public static void reverse(list<?> list)
public static void shuffle(list<?> list)
下面舉一些例子簡單說明一下:
例子1:
public static void main(string args)
得到的結果為:
[d, c, a, b]
[a, b, c, d]
這個方法是list集合進行元素的自然順序排序,當然還可以用方法collections.sort(list,new comparatorbylen()),根據指定比較器排序。
例子2:
arraylistlist = new arraylist();
list.add("d");
list.add("c");
list.add("a");
list.add("b");
list.add("e");
system.out.println(list);
system.out.println(collections.binarysearch(list,"a"));
system.out.println(collections.binarysearch(list, "b"));
system.out.println(collections.binarysearch(list, "c"));
system.out.println(collections.binarysearch(list, "d"));
system.out.println(collections.binarysearch(list, "e"));
得到的結果是:
[d, c, a, b, e]23
-5-5
4為什麼會出現負數呢?因為在二分查詢中,集合中的元素必須是根據列表元素的自然順序對列表進行公升序排序,如果不是的話,得到的結果不確定,api中說
引數:a
- 要搜尋的陣列
key
- 要搜尋的值
返回:如果它包含在陣列中,則返回搜尋鍵的索引;否則返回
(-(插入點) - 1)。
插入點 被定義為將鍵插入陣列的那一點:即第乙個大於此鍵的元素索引,如果陣列中的所有元素都小於指定的鍵,則為
a.length。注意,這保證了當且僅當此鍵被找到時,返回的值將 >= 0。
所以,二分查詢這個方法必須是對排序過後的集合使用。
arraylistlist = new arraylist();
list.add("d");
list.add("c");
list.add("a");
list.add("b");
list.add("e");
system.out.println(list);
collections.sort(list);
system.out.println(collections.binarysearch(list,"a"));
system.out.println(collections.binarysearch(list, "b"));
system.out.println(collections.binarysearch(list, "c"));
system.out.println(collections.binarysearch(list, "d"));
system.out.println(collections.binarysearch(list, "e"));
這下得出的結果就為:
[d, c, a, b, e]01
234例子3:
arraylistlist = new arraylist();
list.add("d");
list.add("c");
list.add("a");
list.add("b");
list.add("e");
system.out.println(collections.max(list));
system.out.println(collections.min(list));
得到的結果為: ea
max()方法是找到list集合中的最大值,min()是找到list集合中的最小值。
例子4:
arraylistlist = new arraylist();
list.add("d");
list.add("c");
list.add("a");
list.add("b");
list.add("e");
system.out.println(list);
collections.reverse(list);
system.out.println(list);
得到的結果是:
[d, c, a, b, e]
[e, b, a, c, d]
reverse()是翻轉list集合的方法。
還有乙個方法shuffle()方法,是集合中的元素隨意排序。
同樣是上面的list:
collections.shuffle(list);
system.out.println(list);
collections.shuffle(list);
system.out.println(list);
collections.shuffle(list);
system.out.println(list);
得到的結果是:
[d, c, b, a, e]
[d, b, a, e, c]
[c, d, e, a, b]
三次的結果都不一樣,證明是隨意排序的。
同樣是一開始的list:
system.out.println(list);
collections.swap(list, 0, 3);
system.out.println(list);
得到結果是:
[d, c, a, b, e]
[b, c, a, d, e]
得到的結論是第乙個位置的元素和第四個位置的元素位置互換了。swap()方法同樣是乙個實用的方法。
常用的方法就上面所示,還有很多方法以後碰到再找時間總結。
List Set集合 Collections工具類
1 list集合 1 list是colleciton介面的乙個子介面,常用的實現類有arraylist linkedlist 2 list集合的特點 1 儲存單個元素,元素可重複,可以儲存多個null 2 儲存有序,存入順序和取出來的順序一致 例如 add 1 add 2 add 3 遍歷列印集合 ...
collections 集合模組
標準庫 collections 是 python 內建的乙個集合模組,裡面封裝了許多集合類。collections模組包含了除list dict 和tuple之外的容器資料型別,如counter defaultdict deque namedtuple orderdict等。這個模組實現了特定目標的...
集合 Collections工具
1.定義 collections是集合類的乙個工具類,它提供了一系列靜態方法用於對容器中的元素進行排序和搜尋等一系列操作。注 collection是乙個集合介面,而collections是乙個有著操作容器的方法的工具類。2.方法 1 reverse list list 使list中的資料發生反轉 1...