* Collections演示。
* 1,用于操作集合的工具类。
* 2,提供了很多的静态方法。
*
* 比如对list集合排序,二分查找,位置置换。
* 对排序的元素进行顺序的逆转。reverseOrder
* 还可以获取集合的最大值和最小值。
* 最牛叉的是将非同步的集合转成同步的集合 synchronizedXXX
package cn.itcast.p4.collections; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import cn.itcast.p2.comparator.ComparatorByLength; public class CollectionsDemo { public static void main(String[] args) { sortDemo(); } //1,演示Collections中的排序,元素重复的集合排序,是针对List的方法。 public static void sortDemo(){ List<String> list = new ArrayList<String>(); list.add("abc"); list.add("aaaaaaa"); list.add("hahah"); list.add("cba"); System.out.println(list);//List集合本身有序,不是有排序 //排序方法。 //Collections.sort(list);//按字典顺序排序 //Collections.sort(list,new comparatorByLength());//比较器排序,按字符串长度排序 //Collections.sort(list,Collections.reverseOrder());//按字典的排序逆转 //Collections.sort(list,Collections.reverseOrder(new ComparatorByLength()));//将已有的比较器的排序逆转 //String max = Collections.max(list);//获取自然排序下的排在最后的值 //String max = Collections.max(list,new ComparatorByLength());//获取比较器下排在最后的值 String max = myMax(list);//自定义按字典顺序获取最大值, //String max = myMax(list,new ComparatorByLength());//按比较器的顺序取得的最大值 System.out.println("max="+max); System.out.println(list); } //模拟一个max方法。获取集合中的最大值。 public static <T extends Object & Comparable<? super T>> T myMax(Collection<? extends T> coll){ Iterator<? extends T> it = coll.iterator(); //定义一个记录较大值的变量。 T max = it.next(); while(it.hasNext()){ T temp = it.next(); if(temp.compareTo(max)>0){ max = temp; } } return max; } public static String myMax(Collection<String> coll, Comparator<String> comp){ Iterator<String> it = coll.iterator(); //定义一个记录较大值的变量。 String max = it.next(); while(it.hasNext()){ String temp = it.next(); if(comp.compare(temp, max)>0){ max = temp; } } return max; } }
原文地址:http://8477424.blog.51cto.com/8467424/1783655