Cómo ordenar objetos en ArrayList por fecha en Java

Asad Riaz 12 octubre 2023
  1. Método comparable<> para ordenar objetos en ArrayList por fechas en Java
  2. Método collections.sort() para ordenar objetos en ArrayList por fecha en Java
  3. Método list.sort() para ordenar objetos en ArrayList por fecha en Java
Cómo ordenar objetos en ArrayList por fecha en Java

Tenemos múltiples métodos para ordenar objetos en ArrayList por fecha en Java. Esta clasificación se puede realizar en función de la fecha o cualquier otra condición. Por ejemplo, hacer que los objetos sean comparables<>, Collections.sort() y list.sort().

Método comparable<> para ordenar objetos en ArrayList por fechas en Java

El primer método funciona haciendo el objeto comparable<> junto con el uso de las clases compareTo(), compare() y collections.sort(). Crearemos una nueva clase de objeto DateItem e implementaremos la interfaz Comparator<DateItem> para ordenar el array.

Códigos de ejemplo:

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); });
  }
}

Producción :

2019-01-27
2020-02-26
2020-03-25
2020-03-26 

Método collections.sort() para ordenar objetos en ArrayList por fecha en Java

El método collections.sort() podría realizar la clasificación por fecha en una ArrayList.

Códigos de ejemplo:

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);
  }
}

Producción :

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]

Método list.sort() para ordenar objetos en ArrayList por fecha en Java

El método list.sort() de Java se combina con una expresión lambda para realizar la ordenación por date en una ArrayList.

Códigos de ejemplo:

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);
  }
}

Producción :

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]

Artículo relacionado - Java ArrayList