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