Como ordenar os objetos na ArrayList por data em Java

Asad Riaz 12 outubro 2023
  1. comparable<> Método para ordenar os objetos em ArrayList por datas em Java
  2. collections.sort() Método para ordenar os objetos em ArrayList por data em Java
  3. list.sort() Método para ordenar os objetos em ArrayList por data em Java
Como ordenar os objetos na ArrayList por data em Java

Temos vários métodos para ordenar objetos em ArrayList por data em Java. Esta ordenação pode ser feita com base na data ou em qualquer outra condição. Por exemplo, tornando os métodos comparable<>, Collections.sort() e list.sort().

comparable<> Método para ordenar os objetos em ArrayList por datas em Java

O primeiro método funciona tornando o objeto comparable<> junto com a utilização das classes compareTo(), compare() e collections.sort(). Vamos criar uma nova classe de objeto DateItem e implementar a interface Comparator<DateItem> para ordenar o array.

Códigos de exemplo:

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

Resultado:

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

collections.sort() Método para ordenar os objetos em ArrayList por data em Java

O método collections.sort() poderia realizar a ordenação por data em uma ArrayList.

Códigos de exemplo:

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

Resultado:

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]

list.sort() Método para ordenar os objetos em ArrayList por data em Java

O método list.sort() de Java combina com uma expressão lambda para realizar a ordenação por date em uma ArrayList.

Códigos de exemplo:

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

Resultado:

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]

Artigo relacionado - Java ArrayList