Sorteer objecten in ArrayList op datum in Java
We hebben meerdere methoden om objecten te sorteren in ArrayList
op datum in Java. Deze sortering kan worden gedaan op basis van de datum of een andere voorwaarde. Bijvoorbeeld het maken van object comparable<>
, Collections.sort()
en list.sort()
methoden.
comparable<>
Methode om objecten te sorteren in ArrayList
op datums in Java
De eerste methode werkt door het object comparable<>
samen met het gebruik van klassen compareTo()
, compare()
en collections.sort()
. We zullen een nieuwe klasse maken van DateItem
object en implementeer Comparator<DateItem>
interface om de array te sorteren.
Voorbeeldcodes:
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);
});
}
}
Uitgang:
2019-01-27
2020-02-26
2020-03-25
2020-03-26
collections.sort()
Methode om objecten in ArrayList te sorteren op datum in Java
De collections.sort()
methode zou kunnen sorteren op datum in een ArrayList
.
Voorbeeldcodes:
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);
}
}
Uitgang:
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()
Methode om objecten te sorteren in ArrayList
op datum in Java
De list.sort()
methode van Java combineert met een lambda-expressie om de sortering op date
. uit te voeren in een ArrayList
.
Voorbeeldcodes:
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);
}
}
Uitgang:
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]