1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Compa ...
1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.List; 7 import java.util.TreeSet; 8 9 import cn.itcast.p2.comparator.ComparatorByLength; 10 11 public class CollectionsDemo { 12 13 public static void main(String[] args) { 14 /* 15 * Collections:是集合框架的工具类。 16 * 里面的方法都是静态的。 17 */ 18 19 demo_4(); 20 21 } 22 23 public static void demo_4() { 24 List<String> list = new ArrayList<String>(); 25 26 list.add("abcde"); 27 list.add("cba"); 28 list.add("aa"); 29 list.add("zz"); 30 list.add("cba"); 31 list.add("nbaa"); 32 Collections.sort(list); 33 System.out.println(list); 34 35 /* 36 * 替换 37 * static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) 38 * 使用另一个值替换列表中出现的所有某一指定值。 39 * 40 * 随机置换 41 * static void shuffle(List<?> list) 42 * 使用默认随机源对指定列表进行置换。 43 * static void shuffle(List<?> list, Random rnd) 44 * 使用指定的随机源对指定列表进行置换。 45 * 46 * 替换 47 * static <T> void fill(List<? super T> list, T obj) 48 * 使用指定元素替换指定列表中的所有元素。 49 */ 50 Collections.replaceAll(list, "cba", "nba"); 51 System.out.println(list); 52 53 Collections.shuffle(list); 54 System.out.println(list); 55 56 Collections.fill(list, "ccc"); 57 System.out.println(list); 58 59 } 60 /* 61 * demo_4结果:[aa, abcde, cba, cba, nbaa, zz] 62 [aa, abcde, nba, nba, nbaa, zz] 63 [abcde, zz, nba, aa, nbaa, nba] 每次运行结果都不同 64 [ccc, ccc, ccc, ccc, ccc, ccc] 65 66 */ 67 68 public static void demo_3() { 69 /* 70 * 反转顺序 71 * static <T> Comparator<T> reverseOrder() 72 * 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。 73 * static <T> Comparator<T> reverseOrder(Comparator<T> cmp) 74 * 返回一个比较器,它强行逆转指定比较器的顺序。 75 */ 76 TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new ComparatorByLength())); 77 78 ts.add("abc"); 79 ts.add("cba"); 80 ts.add("hahaha"); 81 ts.add("aa"); 82 ts.add("zzz"); 83 84 System.out.println(ts); 85 } 86 /* 87 * demo_3运行结果: [hahaha, zzz, cba, abc, aa] 88 */ 89 90 public static void demo_2() { 91 List<String> list = new ArrayList<String>(); 92 93 list.add("abcde"); 94 list.add("cba"); 95 list.add("aa"); 96 list.add("zz"); 97 list.add("cba"); 98 list.add("nbaa"); 99 Collections.sort(list);100 System.out.println(list);101 102 /*103 * 二分搜索法104 * static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)105 * static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)106 */107 int index = Collections.binarySearch(list, "cba");108 System.out.println("index:"+index); //2109 int index2 = Collections.binarySearch(list, "aaa");110 System.out.println("index:"+index2); //-2 如果没有所要搜寻的key存在,则返回(-(插入点)-1)111 112 /*113 * 获取最大值114 * static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)115 * 根据元素的自然顺序,返回给定 collection 的最大元素。116 * static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)117 * 根据指定比较器产生的顺序,返回给定 collection 的最大元素。118 * 119 * 获取最小值 类似上面120 */121 String max = Collections.max(list, new ComparatorByLength());122 System.out.println("max:"+max);123 124 }125 126 public static void demo_1() {127 List<String> list = new ArrayList<String>();128 129 list.add("abcde");130 list.add("cba");131 list.add("aa");132 list.add("zz");133 list.add("cba");134 list.add("nbaa");135 136 System.out.println(list);137 138 /*139 * 两种比较方式140 */141 142 //对list集合进行指定顺序的排序。143 //static <T extends Comparable<? super T>> void sort(List<T> list)144 Collections.sort(list);145 // mySort(list); //sort的执行原理146 System.out.println(list);147 148 //static <T> void sort(List<T> list, Comparator<? super T> c)149 Collections.sort(list, new ComparatorByLength());150 // mySort(list , new ComparatorByLength()); // 上一条代码的执行原理151 System.out.println(list);152 }153 154 //sort(List<T> list, Comparator<? super T> c) 执行原理155 public static <T> void mySort(List<T> list, Comparator<? super T> comp) {156 for (int i=0; i<list.size()-1; i++)157 for (int j=i+1; j<list.size(); j++)158 {159 if (comp.compare(list.get(i), list.get(j)) > 0)160 Collections.swap(list, i, j);161 }162 }163 164 //sort(List<T> list)的执行原理165 public static <T extends Comparable<? super T>> void mySort(List<T> list) {166 167 for (int i=0; i<list.size()-1; i++)168 for (int j=i+1; j<list.size(); j++)169 {170 if (list.get(i).compareTo(list.get(j)) > 0)171 Collections.swap(list, i, j); //交换两个元素172 }173 }174 175 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:类Collections的静态方法的使用(代码)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。