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循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。