List 排序 Java工具類

ne3g 9年前發布 | 2K 次閱讀 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>

 本文由用戶 ne3g 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!