Java >> Java-zelfstudie >  >> Tag >> ArrayList

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]

Java-tag