隨筆-20  評論-3  文章-9  trackbacks-0
          1. List里面裝的對象是自定義的,重載這個對象的compareTo()方法,在這個方法中根據屬性A來判斷大小。  
              之后用Collections.sort()對你的list進行排序
          2. 容器內元素實現Comparetor接口,Collections.sort()把它傳進去就可以了
          3. 將內部對象繼承comparable接口,實現一個compareTo接口,調用java.util.Collections.sort()方法
          4. Collections.sort(fileList,   new   FileNodeComparator(form.getSortName(),form.isAsc()));  
               
               
               
              class   FileNodeComparator   implements   Comparator{  
              private   String   sortName   =   "name";  
              private   boolean   isAsc   =   true;  
              FileNodeComparator(String   sortName,boolean   isAsc){  
              this.sortName   =   sortName;  
              this.isAsc   =   isAsc;  
              }  
              public   int   compare(Object   arg0,   Object   arg1)   {  
              。。。。。。。。  
              。。。。。。。。  
              。。。。。。。。  
              。。。。。。。。  
              }  
              }
          5. 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);
                    }
                }
            }
          posted on 2008-05-30 16:47 藍山 閱讀(943) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 海口市| 罗山县| 金昌市| 岫岩| 黄陵县| 普宁市| 长泰县| 瑞丽市| 克山县| 威信县| 漾濞| 东海县| 大田县| 宝山区| 肥西县| 奎屯市| 聂拉木县| 河曲县| 舒城县| 苏尼特左旗| 金华市| 天气| 毕节市| 威海市| 读书| 罗山县| 萨嘎县| 依安县| 昆明市| 万荣县| 永川市| 长治县| 古丈县| 于田县| 铜山县| 嘉祥县| 开平市| 北海市| 长顺县| 四川省| 云浮市|