Java?將list集合數(shù)據(jù)按照時間字段排序的方法
示例:

public static List<Product> getProductTestList(){
List<Product> productList=new ArrayList<>();
productList.add(new Product().setName("兒童護具").setCreateDate("2023-02-01"));
productList.add(new Product().setName("青年護具").setCreateDate("2023-01-01"));
productList.add(new Product().setName("老人護具").setCreateDate("2023-01-02"));
productList.add(new Product().setName("動物護具").setCreateDate("2023-02-02"));
return productList;
}要求:
按照創(chuàng)建時間 createDate 字段排序
方案①:
使用list的sort方法
.sort(Comparator.comparing(Product::getCreateDate));
代碼示例:
public static List<Product> getProductTestList(){
List<Product> productList=new ArrayList<>();
productList.add(new Product().setName("兒童護具").setCreateDate("2023-02-01"));
productList.add(new Product().setName("青年護具").setCreateDate("2023-01-01"));
productList.add(new Product().setName("老人護具").setCreateDate("2023-01-02"));
productList.add(new Product().setName("動物護具").setCreateDate("2023-02-02"));
return productList;
}
public static void main(String[] args) {
List<Product> productTestList = getProductTestList();
productTestList.sort(Comparator.comparing(Product::getCreateDate));
System.out.println(productTestList);
}效果:

如果需要倒序,則加上 reversed 在 .comparing(Product::getCreateDate) .reversed()
方案②:
使用 Collections的sort
Collections.sort(productTestList, new Comparator<Product>() {}
代碼示例:
public static void main(String[] args) {
List<Product> productTestList = getProductTestList();
Collections.sort(productTestList, new Comparator<Product>() {
@Override
public int compare(Product o1, Product o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = format.parse(o1.getCreateDate());
Date dt2 = format.parse(o2.getCreateDate());
if (dt1.getTime() > dt2.getTime()) {
return 1;
} else {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
System.out.println(productTestList);
}效果:

如果需要把順序反過來,則改變 1 和 -1 的返回值 :

效果:

方案③:
使用stream的sorted
.stream().sorted(Comparator.comparing(Product::getCreateDate)
代碼示例:
public static List<Product> getProductTestList(){
List<Product> productList=new ArrayList<>();
productList.add(new Product().setName("兒童護具").setCreateDate("2023-02-01"));
productList.add(new Product().setName("青年護具").setCreateDate("2023-01-01"));
productList.add(new Product().setName("老人護具").setCreateDate("2023-01-02"));
productList.add(new Product().setName("動物護具").setCreateDate("2023-02-02"));
return productList;
}
public static void main(String[] args) {
List<Product> productTestList2 = getProductTestList();
List<Product> sortList = productTestList2.stream()
.sorted(Comparator.comparing(Product::getCreateDate))
.collect(Collectors.toList());
System.out.println(sortList);
}效果:

如果需要倒序則:
在compring()后面加上 reversed()

到此這篇關于Java 將list集合數(shù)據(jù)按照時間字段排序的文章就介紹到這了,更多相關java list集合時間排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java?Excel數(shù)據(jù)導入數(shù)據(jù)庫的方法
這篇文章主要為大家詳細介紹了Java?Excel數(shù)據(jù)導入數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
SpringMVC中Controller層獲取前端請求參數(shù)的方式匯總
這篇文章主要介紹了SpringMVC中Controller層獲取前端請求參數(shù)的幾種方式,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Java多線程并發(fā)的指令重排序問題及volatile寫屏障原理詳解
這篇文章主要介紹了Java多線程并發(fā)的指令重排序問題及volatile寫屏障原理詳解,指令重排序是編譯器或處理器為了提高性能而對指令執(zhí)行順序進行重新排列的優(yōu)化技術,需要的朋友可以參考下2024-01-01
Java SpringBoot實現(xiàn)文件上傳功能的示例代碼
這篇文章主要介紹了如何利用Java SpringBoot實現(xiàn)文件上傳功能,文中的示例代碼講解詳細,對我們學習有一定幫助,需要的可以參考一下2022-03-03
Springmvc ResponseBody響應json數(shù)據(jù)實現(xiàn)過程
這篇文章主要介紹了Springmvc ResponseBody響應json數(shù)據(jù)實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10
Java實現(xiàn)的properties文件動態(tài)修改并自動保存工具類
這篇文章主要介紹了Java實現(xiàn)的properties文件動態(tài)修改并自動保存工具類,可實現(xiàn)針對properties配置文件的相關修改與保存功能,需要的朋友可以參考下2017-11-11

