1. 程式人生 > >List集合排序方法

List集合排序方法

List排序 approveList集合 按申請日期和時間排序
方法一:

Collections.sort(approveList, new Comparator<HrCommuteApproveDetail>() {
@Override
public int compare(HrCommuteApproveDetail arg0, HrCommuteApproveDetail arg1) {
return arg0.getBeginTime().compareTo(arg1.getBeginTime());
}
});

方法二:

approveList.sort(new Comparator<HrCommuteApproveDetail>() {
@Override
public int compare(HrCommuteApproveDetail arg0, HrCommuteApproveDetail arg1) {
return arg0.getBeginTime().compareTo(arg1.getBeginTime());
}
});

方法三:

approveList.sort((lhs, rhs) -> {
int a = lhs.getCommuteDate().compareTo(rhs.getCommuteDate());
if(0==a){
return lhs.getBeginTime().compareTo(rhs.getBeginTime());
}
return a;
});

方法四:

Collections.sort(approveList, (o1, o2) -> o1.getBeginTime().compareTo(o2.getBeginTime()));//java1.8 Lambda表示式

方法五:

approveList.sort((o1, o2) -> o1.getBeginTime().compareTo(o2.getBeginTime()));//java1.8 Lambda表示式
  • ArrayList和LinkList的區別:
    ArrayList:ArrayList是採用陣列的形式儲存物件的,這種方式將物件放在連續的記憶體塊中,所以插入和刪除時比較麻煩,查詢比較方便。
    LinkList:LinkList是將物件放在獨立的空間中,而且每個空間中還儲存下一個空間的索引,也就是資料結構中的連結串列結構,插入和刪除比較方便,但是查詢很麻煩,要從第一個開始遍歷。
    需要迴圈陣列結構(ArrayList)的資料時,建議使用普通for迴圈,因為for迴圈採用下標訪問,對於陣列結構的資料來說,採用下標訪問比較好。
    需要迴圈連結串列結構(LinkList)的資料時,一定不要使用普通for迴圈,這種做法很糟糕,資料量大的時候有可能會導致系統崩潰。