HOWTO · Java
Como ordenar os objetos na ArrayList por data em Java
Este tutorial mostra como ordenar objetos no ArrayList por data em Java com múltiplas abordagens como usar; tornando os objetos comparáveis<>, Collections.sort(), e list.sort().
Nesta página
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]