如何在 Java 中按日期對 ArrayList 中的物件進行排序
Asad Riaz
2023年10月12日
-
Java 的
comparable<>
方法按日期對ArrayList
中的物件進行排序 -
Java 中的
collections.sort()
方法按日期對 ArrayList 中的物件進行排序 -
在 Java 中
list.sort()
方法按日期對ArrayList
中的物件進行排序
在 Java 中,我們有多種方法可以按日期對 ArrayList
中的物件進行排序。這些排序可以基於日期或任何其他條件進行。例如,使用物件 comparable<>
、Collections.sort()
和 list.sort()
方法。
Java 的 comparable<>
方法按日期對 ArrayList
中的物件進行排序
第一種方法通過使物件 comparable<>
以及使用類 compareTo()
,compare()
和 collections.sort()
一起起作用。我們將建立一個新 DateItem
類,並實現 Comparator<DateItem>
介面以對陣列進行排序。
示例程式碼:
import java.util.*;
public class SimpleTesing {
static class DateItem {
String datetime;
DateItem(String date) {
this.datetime = date;
}
}
static class SortByDate implements Comparator<DateItem> {
@Override
public int compare(DateItem a, DateItem b) {
return a.datetime.compareTo(b.datetime);
}
}
public static void main(String args[]) {
List<DateItem> dateList = new ArrayList<>();
dateList.add(new DateItem("2020-03-25"));
dateList.add(new DateItem("2019-01-27"));
dateList.add(new DateItem("2020-03-26"));
dateList.add(new DateItem("2020-02-26"));
Collections.sort(dateList, new SortByDate());
dateList.forEach(date -> { System.out.println(date.datetime); });
}
}
輸出:
2019-01-27
2020-02-26
2020-03-25
2020-03-26
Java 中的 collections.sort()
方法按日期對 ArrayList 中的物件進行排序
collections.sort()
方法可以在 ArrayList
中按日期進行排序。
示例程式碼:
import java.util.*;
public class SimpleTesting {
public static void main(String[] args) {
List<String> dateArray = new ArrayList<String>();
dateArray.add("2020-03-25");
dateArray.add("2019-01-27");
dateArray.add("2020-03-26");
dateArray.add("2020-02-26");
System.out.println("The Object before sorting is : " + dateArray);
Collections.sort(dateArray);
System.out.println("The Object after sorting is : " + dateArray);
}
}
輸出:
The Object before sorting is : [2020-03-25, 2019-01-27, 2020-03-26, 2020-02-26]
The Object after sorting is : [2019-01-27, 2020-02-26, 2020-03-25, 2020-03-26]
在 Java 中 list.sort()
方法按日期對 ArrayList
中的物件進行排序
Java 的 list.sort()
方法與 lambda
表示式結合使用,以對 ArrayList
中的日期進行排序。
示例程式碼:
import java.util.*;
public class SimpleTesting {
public static void main(String[] args) {
List<String> dateArray = new ArrayList<String>();
dateArray.add("2020-03-25");
dateArray.add("2019-01-27");
dateArray.add("2020-03-26");
dateArray.add("2020-02-26");
System.out.println("The Object before sorting is : " + dateArray);
dateArray.sort((d1, d2) -> d1.compareTo(d2));
System.out.println("The Object after sorting is : " + dateArray);
}
}
輸出:
The Object before sorting is : [2020-03-25, 2019-01-27, 2020-03-26, 2020-02-26]
The Object after sorting is : [2019-01-27, 2020-02-26, 2020-03-25, 2020-03-26]