如何在 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]