/*
集合框架的工具類。
Collections:集合框架的工具類。里面定義的都是靜態方法。
Collections和Collection有什么區別?
Collection是集合框架中的一個頂層接口,它里面定義了單列集合的共性方法。
它有兩個常用的子接口,
List:對元素都有定義索引。有序的。可以重復元素。
Set:不可以重復元素。無序。
Collections是集合框架中的一個工具類。該類中的方法都是靜態的
提供的方法中有可以對list集合進行排序,二分查找等方法。
通常常用的集合都是線程不安全的。因為要提高效率。
如果多線程操作這些集合時,可以通過該工具類中的同步方法,將線程不安全的集合,轉換成安全的。
*/
import java.util.*;
class Test3 {
public static void main(String[] args) {
System.out.println("-------------sortDemo---------------");
sortDemo();
System.out.println("-------------maxDemo---------------");
maxDemo();
/**
* -------------sortDemo---------------
* [z, qq, zz, aaa, abcd, kkkkk]
* -------------maxDemo---------------
* [aaa, abcd, kkkkk, qq, z, zz]
* max=zz
*/
}
public static void sortDemo() {
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
Collections.sort(list, new StrLenComparator());
sop(list);
}
public static void maxDemo() {
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
Collections.sort(list);
sop(list);
String max = Collections.max(list);
sop("max=" + max);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
/**
* 比較器,先按字符長度然后按自然排序
*/
class StrLenComparator implements Comparator<String> {
public int compare(String s1, String s2) {
if (s1.length() > s2.length())
return 1;
if (s1.length() < s2.length())
return -1;
return s1.compareTo(s2);
}
}