1. Collection是集合類的一個頂級接口,其直接繼承接口有List與Set java
而Collections則是集合類的一個工具類/幫助類,其中提供了一系列靜態方法,用於對集合中元素進行排序、搜索以及線程安全等各類操做。 算法
1) 排序(Sort)
使用sort方法能夠根據元素的天然順序 對指定列表按升序進行排序。列表中的全部元素都必須實現 Comparable 接口。此列表內的全部元素都必須是使用指定比較器可相互比較的 安全
ArrayList list = new ArrayList(); double array[] = { 112, 111, 23, 456, 231 }; for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.sort(list); for (int i = 0; i < array.length; i++) { System.out.println(list.get(i)); }//結果:
2) 混排(Shuffling)
混排算法所作的正好與 sort 相反: 它打亂在一個 List 中可能有的任何排列的蹤影。也就是說,基於隨機源的輸入重排該 List, 這樣的排列具備相同的可能性(假設隨機源是公正的)。這個算法在實現一個碰運氣的遊戲中是很是有用的。例如,它可被用來混排表明一副牌的 Card 對象的一個 List 。另外,在生成測試案例時,它也是十分有用的。
Collections.Shuffling(list)
工具
ArrayList list = new ArrayList(); double array[] = { 112, 111, 23, 456, 231 }; for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.shuffle(list); for (int i = 0; i < array.length; i++) { System.out.println(list.get(i)); }
3) 反轉(Reverse)
使用Reverse方法能夠根據元素的天然順序 對指定列表按降序進行排序。
Collections.reverse(list)
測試
ArrayList list = new ArrayList(); double array[] = { 112, 111, 23, 456, 231 }; for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.reverse(list); for (int i = 0; i < array.length; i++) { System.out.println(list.get(i)); }
//結果:231,456,23,111,112 spa
4) 替換因此的元素(Fill)ArrayList list = new ArrayList(); String str[] = { "dd", "aa", "bb", "cc", "ee" }; for (int j = 0; j < str.length; j++) { list.add(new String(str[j])); } Collections.fill(list, "aaa"); for (int i = 0; i < list.size(); i++) { System.out.println("list[" + i + "]=" + list.get(i)); }
double array[] = { 112, 111, 23, 456, 231 }; List list = new ArrayList(); List li = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } double arr[] = { 1131, 333 }; String str[] = { "dd", "aa", "bb", "cc", "ee" }; for (int j = 0; j < arr.length; j++) { li.add(new Double(arr[j])); } Collections.copy(list, li); for (int i = 0; i < list.size(); i++) { System.out.println("list[" + i + "]=" + list.get(i)); }
//結果:1131,333,23,456,231 線程
ArrayList list = new ArrayList(); double array[] = {112, 111, 23, 456, 231 }; for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } System.out.println(Collections.min(list));
//結果:23 code
ArrayList list = new ArrayList(); double array[] = {112, 111, 23, 456, 231 }; for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } System.out.println(Collections.max(list));
//結果:456 對象
8) lastIndexOfSubListint count = Collections.lastIndexOfSubList(list,li); 排序
double array[] = {112, 111, 456, 23, 456, 231 }; List list = new ArrayList(); List li = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } double arr[] = {456}; for(int j=0;j<arr.length;j++){ li.add(new Double(arr[j])); } int locations = Collections. lastIndexOfSubList (list,li); System.out.println(locations);
//結果 4
double array[] = {112, 111, 23, 456, 231 }; List list = new ArrayList(); List li = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } double arr[] = {111}; for(int j=0;j<arr.length;j++){ li.add(new Double(arr[j])); } int locations = Collections.indexOfSubList(list,li); System.out.println(locations);
//結果 1
double array[] = { 112, 111, 23, 456, 231 }; List list = new ArrayList(); for (int i = 0; i < array.length; i++) { list.add(new Double(array[i])); } Collections.rotate(list, -1); for (int i = 0; i < list.size(); i++) { System.out.println("list[" + i + "]=" + list.get(i)); }//結果:111,23,456,231,112