对list中的元素按照元素的属性进行排序
生活随笔
收集整理的這篇文章主要介紹了
对list中的元素按照元素的属性进行排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
用collection.sort()方法對list集合排序
第一種是list中的對象實現Comparable接口,如下:?
/**? *?根據order對User排序? */? public?class?User?implements?Comparable<User>{?private?String?name;?private?Integer?order;?public?String?getName()?{?return?name;?}?public?void?setName(String?name)?{?this.name?=?name;?}?public?Integer?getOrder()?{?return?order;?}?public?void?setOrder(Integer?order)?{?this.order?=?order;?}?public?int?compareTo(User?arg0)?{?return?this.getOrder().compareTo(arg0.getOrder());?}? }?
測試一下:?
public?class?Test{public?static?void?main(String[]?args)?{?User?user1?=?new?User();?user1.setName("a");?user1.setOrder(1);?User?user2?=?new?User();?user2.setName("b");?user2.setOrder(2);?List<User>?list?=?new?ArrayList<User>();?//此處add?user2再add?user1?list.add(user2);?list.add(user1);?Collections.sort(list);?for(User?u?:?list){?System.out.println(u.getName());?}?}? }?
輸出結果如下?
a?
b?
第二種方法是根據Collections.sort重載方法來實現,例如:?
?
主類中這樣寫即可:?
public?class?Test{?public?static?void?main(String[]?args)?{?User?user1?=?new?User();?user1.setName("a");?user1.setOrder(1);?User?user2?=?new?User();?user2.setName("b");?user2.setOrder(2);?List<User>?list?=?new?ArrayList<User>();?list.add(user2);?list.add(user1);?Collections.sort(list,new?Comparator<User>(){?public?int?compare(User?arg0,?User?arg1)?{?return?arg0.getOrder().compareTo(arg1.getOrder());?}?});?for(User?u?:?list){?System.out.println(u.getName());?}?}? }?
輸出結果如下?
a?
b?
前者代碼結構簡單,但是只能根據固定的屬性排序,后者靈活,可以臨時指定排序項,但是代碼不夠簡潔
多字段的場合:?
以下是另外一個例子?
轉載于:https://my.oschina.net/u/858284/blog/267524
總結
以上是生活随笔為你收集整理的对list中的元素按照元素的属性进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统向腾讯通RTX发提醒消息,“应用SD
- 下一篇: 大数据之HBase部署