Java,J2EE,Weblogic,Oracle

          java項目隨筆
          隨筆 - 90, 文章 - 6, 評論 - 61, 引用 - 0
          數據加載中……

          java List 排序 Collections.sort() 對 List 排序

          //一個POJO例子

          class User {
           String name;
           String age;
           
           public User(String name,String age){
            this.name=name;
            this.age=age;
           }
           public String getAge() {
            return age;
           }
           public void setAge(String age) {
            this.age = age;
           }
           public String getName() {
            return name;
           }
           public void setName(String name) {
            this.name = name;
           } 
          }


          //具體的比較類,實現Comparator接口

          import java.util.Comparator;
          import java.util.List;
          import java.util.ArrayList;
          import java.util.Collections;

          public class ComparatorUser implements Comparator{

           public int compare(Object arg0, Object arg1) {
            User user0=(User)arg0;
            User user1=(User)arg1;

             //首先比較年齡,如果年齡相同,則比較名字

            int flag=user0.getAge().compareTo(user1.getAge());
            if(flag==0){
             return user0.getName().compareTo(user1.getName());
            }else{
             return flag;
            }  
           }
           
          }




          //測試類
          public class SortTest {

           
           public static void main(String[] args){
            List userlist=new ArrayList();
            userlist.add(new User("dd","4"));
            userlist.add(new User("aa","1"));
            userlist.add(new User("ee","5"));
            userlist.add(new User("bb","2"));  
            userlist.add(new User("ff","5"));
            userlist.add(new User("cc","3"));
            userlist.add(new User("gg","6"));
            
            ComparatorUser comparator=new ComparatorUser();
            Collections.sort(userlist, comparator);
             
            for (int i=0;i<userlist.size();i++){
             User user_temp=(User)userlist.get(i);
                System.out.println(user_temp.getAge()+","+user_temp.getName()); 
            }
            
           }
          }

           //首先年齡排序,如果年齡相同,則按名字排序

          結果:
             1, aa
             2, bb
             3, cc
             4, dd
             5, ee                    //注意:同樣是5歲的人,則比較名字(ee,ff),然后排序
             5, ff
             6, gg

          posted on 2008-01-17 18:20 龔椿深 閱讀(337268) 評論(32)  編輯  收藏

          評論

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          說的很清楚,明了,受用了,謝謝!
          2008-08-25 21:45 | jj

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          不錯,受用了,
          2008-09-02 21:50 | bdllong

          # re: Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          GOOD!!!!!!!!!!
          2009-02-26 16:33 | XXX

          # re: Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          效果還不錯
          謝謝了
          2009-03-18 17:12 | king

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          Collections 是Collection的一個輔助類
          2009-04-13 21:26 | pmbmessenger

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          great!!!
          2009-06-10 14:06 | leeo

          # re: Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          十分感謝,才用你的方法問題解決了.
          2009-06-25 14:46 | scorpio

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          十分感謝
          2009-08-12 16:28 | fangwei

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          是Comparator還是Comparable??
          2009-08-30 01:08 | DB Compare Tool

          # re: Collections.sort() 對 List 排序  回復  更多評論   

          其實本質是集合不能排序的
          需要調用數組排序

          Arrays.sort(array)

          ------MergeSort(array)

          2009-10-15 10:57 | charlie's logic

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          太感謝你拉。找了好久。終于找到個有用的。感謝感謝!!
          2010-12-31 10:12 | xiefei

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          非常好,謝謝
          2011-08-03 11:40 | balc

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          怎么能實現部分排序?就是我不要求list中數據全部排好序,只要最大的30個數據按從大到小排序
          2012-02-21 15:42 | sxc

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          愛死你了。
          2012-03-21 10:08 | Hvance

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          謝謝啦!!!! 弄懂了
          2012-05-11 10:44 | 小小強

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          謝謝了 幫了我一大忙
          2012-05-24 15:05 | jsabcasdkvhbf

          # re: java List 排序 Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          thanks,it's good example.
          2012-06-02 14:17 | jerome

          # re: java List 排序 Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          如果要將其中某一元素放在第一位呢?怎么做?
          2012-07-09 11:49 | 王明

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          樓主,你的這個有問題,那個AGE還是要用INT型的才行,按你這個來比較的話,如果是100,則它比較的時候會把100當成1,所以你這個要稍稍改一下,前面AGE改成INT的,int flag=user0.getAge()-user1.getAge();這樣就行了
          2012-08-06 16:02 | tomcrease

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          太好了
          2012-09-19 14:14 | 41454

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          高手呀,太好用了!頂起!
          2013-06-14 10:05 | 木子丁

          # re: java List 排序 Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          @tomcrease
          感謝提醒。。。
          2013-08-20 16:45 | leo

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          你的排序功能有問題,你往list里添加個13的試試運行效果。
          2013-09-24 14:37 | wzc

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          @tomcrease
          非常感謝
          2013-11-14 13:48 | 飛龍

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          int沒有compareTo方法吧??????????????
          2014-02-21 16:17 | lhw

          # re: java List 排序 Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          這方法要是int是十六進制的該怎么辦啊。我的十六進制的,數據不對啊
          2014-03-18 09:44 | 阿福

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          樓主把age也設置成String類型了,可以么,倒是有Compareto方法了,Integer會好點吧
          2014-04-19 17:27 | 發到付

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          不錯,好東西
          2014-09-03 10:16 |

          # re: java List 排序 Collections.sort() 對 List 排序[未登錄]  回復  更多評論   

          你這個只是按照字典順序排序的,11 ,3,22 如果這是age你試試
          2014-11-05 09:38 | hua

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          為什么,我用同樣的方法就是不行呢,,不能用啊
          2015-02-02 16:44 | 夏夏

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          在jsp 代碼中使用,是不行的,不知道為什么
          2015-04-28 17:37 | 源代碼

          # re: java List 排序 Collections.sort() 對 List 排序  回復  更多評論   

          哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇
          2015-06-13 20:04 | 休息休息

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


          網站導航:
           
          主站蜘蛛池模板: 开远市| 甘德县| 科技| 江源县| 棋牌| 离岛区| 淳安县| 潞西市| 临城县| 连城县| 兴文县| 雅江县| 阜康市| 育儿| 视频| 高尔夫| 巴中市| 仁怀市| 通城县| 新丰县| 罗江县| 杭州市| 高陵县| 揭阳市| 嘉定区| 布尔津县| 黄骅市| 阳山县| 竹北市| 汉源县| 兴山县| 唐山市| 宝鸡市| 浑源县| 吉安县| 民县| 陕西省| 竹山县| 桐乡市| 南川市| 安西县|