Hello, I have project and user writes date(using scanner etc.) which saves to an ArrayList and I need to sort the dates.
(There is the code (its in Czech) den = day, mesic = month, rok = year, datum = date)

public class Ukoly {

    protected String predmet;
    protected String poznamka;
    protected String stav;
    protected int den;
    protected int mesic;
    protected int rok;
    protected int znamka;

    public Ukoly(int den, int mesic, int rok, String predmet, String poznamka, String stav, int znamka) {
        super();
        this.den = den;
        this.mesic = mesic;
        this.rok = rok;
        this.predmet = predmet;
        this.poznamka = poznamka;
        this.stav = stav;
        this.znamka = znamka;
        }
    public Ukoly() {
        // TODO Auto-generated constructor stub
    }
    public  void setPredmet(String pred) {
        this.predmet = pred;
    }
    public void setPoznamka(String pozn) {
        this.poznamka = pozn;
    }
    public void setStav(String st) {
        this.stav = st;
    }
    public void setDen(int den) {
        this.den = den;
    }
    public void setMesic(int mesi) {
        this.mesic = mesi;
    }
    public void setRok(int rok) {
        this.rok = rok;
    }
    public void setZnamka(int zn) {
        this.znamka = zn;
    }
    public String getPredmet() {
        return this.predmet;
    }
    public String getPoznamka() {
        return this.poznamka;
    }
    public String getStav() {
        return this.stav;
    }
    public int getDen() {
        return this.den;
    }
    public int getMesic() {
        return this.mesic;
    }
    public int getRok() {
        return this.rok;
    }
    public int getZnamka() {
        return this.znamka;
    }
    @Override
    public String toString() {
        return "Ukoly [predmet=" + predmet + ", poznamka=" + poznamka + ", stav=" + stav + ", den=" + den + ", mesic="
                + mesic + ", rok=" + rok + ", znamka=" + znamka + "]";
    }


}





import java.util.ArrayList;
import java.util.Scanner;


public class Denik extends Ukoly{

    public Denik(int den, int mesic, int rok, String predmet, String poznamka, String stav, int znamka) {
        super(den, mesic, rok, predmet, poznamka, stav, znamka);

    }

    public static void main(String[] args) {

        ArrayList<Ukoly> ukol = new ArrayList<>();
        @SuppressWarnings("resource")
        Scanner sken = new Scanner(System.in);
        int vyber;
        int vyber1 = 2;
        int vyber2;
        int vyber3;
        int vyber4;
        String datum;



        while (vyber1 == 2) {

            Ukoly novy = new Ukoly();


            System.out.println("Stiskněte 1 pro otevření seznamu úkolu nebo 2 pro přidávání úkolů.");
            vyber = Integer.parseInt(sken.nextLine());
            if (vyber == 1) {



                      }
            if (vyber == 2) {

                System.out.println("Zadejte z jakého předmětu úkol je: ");
                novy.setPredmet(sken.nextLine());
                System.out.println("Zadejte datum odevzdání ve tvaru 20.01.2000: ");
                datum = sken.nextLine();
                novy.setDen(Integer.parseInt(datum.substring(0, 2)));
                novy.setMesic(Integer.parseInt(datum.substring(3, 5)));
                novy.setRok(Integer.parseInt(datum.substring(6, 10)));
                System.out.println("Zde můžete zadat poznámku: ");
                novy.setPoznamka(sken.nextLine());
                System.out.println("Zde zadejte stav úkolu(vypracován, ale neodevzdán/nevypracován): ");
                novy.setStav(sken.nextLine());
                System.out.println("Zde si zapište pokuď máte z úkolu nějakou známku(ve tvaru 1/2/3/4/5/0): ");
                novy.setZnamka(Integer.parseInt(sken.nextLine()));
                ukol.add(novy);

                System.out.println("Chceš zobrazit svůj úkol/y které máš zapsané? Pokud ANO stiskni 1, pokud NE stiskni 2");
                vyber2 = Integer.parseInt(sken.nextLine());

                if (vyber2 == 1) {
                    for (int i1 = 0; i1 < ukol.size(); i1++)

                        System.out.println(ukol.get(i1));
                }

                if (vyber2 == 2) {

                }

            }

            System.out.println("Byli to všechny tvé úkoly(stiskni 1), nebo si chceš zapsat další úkol?(stiskni 2) ");
            vyber1 = Integer.parseInt(sken.nextLine());
            if (vyber1 == 1) {

                System.out.println("Chceš vypsat a seřadit všechny své úkoly? Pro ANO stiskni 1, pro NE stiskni 2.");
                vyber3 = Integer.parseInt(sken.nextLine());
                if (vyber3 == 1) {

                    System.out.println("Chceš seřadit úkoly podle předmětu(stiskni 1) nebo data odevzdání(stiskni 2)?");
                    vyber4 = Integer.parseInt(sken.nextLine());
                    if (vyber4 == 1) {




                    }
                    if (vyber4 == 2) {



                    }
                }
                if (vyber3 == 2) {
                    System.out.println("Dobře.");
                }

            }


        }
    }

To make your Ukley class sortable you make it implement Comparable. Comparable is an interface with one method - compareTo(other) - that you implement by comparing the year, then the month etc.
Once you do that you can use Collections.sort to sort any list of Ukleys.
Check the web for examples of Comparable

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.