HOWTO · Java
Java で ArrayList のオブジェクトを日付でソートする方法
このチュートリアルでは、Java で ArrayList のオブジェクトを日付順に並べ替える方法を示しています。オブジェクトを比較可能にする<>、Collections.sort()、list.sort()。
Java では、ArrayList 内のオブジェクトを日付順に並べ替える複数のメソッドがあります。これらの並べ替えは、日付またはその他の条件に基づいて実行できます。たとえば、オブジェクトを comparable<>、Collections.sort()、および list.sort() メソッドに作成します。
comparable<> メソッドは、Java の日付で ArrayList のオブジェクトを並べ替える
最初の方法は、オブジェクトを比較可能にするとともに、クラス 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 で ArrayList のオブジェクトを日付順に並べ替える collections.sort() メソッド
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]
Array のオブジェクトを Java の日付で並べ替える list.sort() メソッド
Java の list.sort() メソッドはラムダ式と組み合わせて、ArrayList の date による並べ替えを実行します。
コード例:
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]