List 排序 Java工具類
/**#
DESCRIBE 關于給Vector,ArrayList和LinkedList特定List集合排序的方法
AUTHOR
DATE 2007-3-16
COMPANY FLX
PORJECT JAVA
#
*/ import java.io.PrintStream; import java.text.CollationKey; import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List;
public class SortList {
public static void main(String args[]) { String words[] = { "man", "Man", "Woman", "woman", "Manana", "manana", "ma?ana", "Ma?ana", "Mantra", "mantra", "mantel", "Mantel" };
PrintStream out = System.out;
List list = new ArrayList(Arrays.asList(words)); out.println("傳入的list:"); out.println(list); out.println();
Collections.sort(list); out.println("默認的sorting:"); out.println(list); out.println();
list = new ArrayList(Arrays.asList(words)); Comparator comp = Collections.reverseOrder(); Collections.sort(list, comp); out.println("反向sorting:"); out.println(list); out.println();
list = new ArrayList(Arrays.asList(words)); comp = new CollatorComparator(); Collections.sort(list, comp); out.println("自定義排序sorting:"); out.println(list); out.println();
list = new ArrayList(Arrays.asList(words)); comp = new CaseInsensitiveComparator(); Collections.sort(list, comp); out.println("按照語種sorting:"); out.println(list); out.println();
}
/**
#
#
@DESCRIBE 自定義的排序規則
@author Administrator
#
#
*/ public static class CaseInsensitiveComparator implements Comparator { public int compare(Object element1, Object element2) { String lower1 = element1.toString().toLowerCase(); String lower2 = element2.toString().toLowerCase(); return lower1.compareTo(lower2); } } /**
#
#
@DESCRIBE 按照語種進行排序的規則
@author Administrator
#
#
*/ public static class CollatorComparator implements Comparator { Collator collator = Collator.getInstance();
public int compare(Object element1, Object element2) { CollationKey key1 = collator.getCollationKey(element1.toString()); CollationKey key2 = collator.getCollationKey(element2.toString()); return key1.compareTo(key2); } } }</pre>