Java で ArrayList のオブジェクトを日付でソートする方法

  1. comparable<> メソッドは、Java の日付で ArrayList のオブジェクトを並べ替えます
  2. Java で ArrayList のオブジェクトを日付順に並べ替える collections.sort() メソッド
  3. Array のオブジェクトを Java の日付で並べ替える 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() メソッドはラムダ式と組み合わせて、ArrayListdate による並べ替えを実行します。

コード例:

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]

関連記事 - Java Sorting

comments powered by Disqus