Duvida Método compareTo

Oi pessoal,
Preciso usar o método compareTo para comparar duas datas, mais não sei bem como faço isso com os atributos que tenho na classe Pessoa(){}, preciso comparar dia, mês e ano para saber qual a data mais recente.
Se alguém puder me ajudar, agradeceria muito mesmo, tenho certa urgência… Alguém sabe como faço o compareTo nessa classe para comparar duas datas??

Obs: sou iniciante na linguagem :slightly_smiling:

public class Data implements Comparable<Data>{
    private int dia;
    private int mes;
    private int ano;
    private Date data = new Date(getDia(),getMes(),getAno());
public void setData(Date data) {
    this.data = data;
}

public Date getData() {
    return data;
}
 
   
public Data(int dia, int mes, int ano){
  this.dia = dia;
  this.mes = mes;
  this.ano = ano;  
}         

public void setDia(int dia) {
    this.dia = dia;
}

public void setMes(int mes) {
    this.mes = mes;
}

public void setAno(int ano) {
    this.ano = ano;
}

public int getDia() {
    return dia;
}

public int getMes() {
    return mes;
}

public int getAno() {
    return ano;
}

 @Override
  public String toString(){
       String data = getDia()+"/"+getMes()+"/"+getAno();
       return data;
   }

@Override
public int compareTo(Data outradata) {
   
      
      if(getData() > outradata.getData()){
        return 1;    
      }else if(getData() < outradata.getData()){
        return -1;
      }else
        return 0;
      
      
           
}

Bem não sei se você quer fazer tudo no braço ou quer utilizar alguma biblioteca, Fiz os dois casos, primeiro utilizei a biblioteca de data do java 8 : LocalDate, como essa classe já implementou o método compareTo, eu só reaproveitei.

public class Data implements Comparable<LocalDate>{
	
    private int dia;
    private int mes;
    private int ano;
    private LocalDate data;
    
    public Data(int dia, int mes, int ano){
    	  this.dia = dia;
    	  this.mes = mes;
    	  this.ano = ano;  
    	  data = LocalDate.of(ano, mes, dia);
    }
    
    @Override
    public int compareTo(LocalDate o) {
 	return data.compareTo(o);
     }

Fazendo no Braço

package raquel;

import java.time.LocalDate;

public class Data implements Comparable<Data>{
	
	private int dia;
    private int mes;
    private int ano;
    private LocalDate data;
    
    public Data(int dia, int mes, int ano){
    	  this.dia = dia;
    	  this.mes = mes;
    	  this.ano = ano;  
    	  data = LocalDate.of(ano, mes, dia);
    }
    
    @Override
	public int compareTo(Data o) {
    	if(this.getAno() > o.getAno()){
    		return 1;
    	}else if(this.getAno() == o.getAno()) {
    		//Caso os anos sejam iguais, Verificamos os meses
    		if(this.getMes() > o.getMes()){
    			return 1;
    		}else if(this.getMes() == o.getMes()){
    			// Caso os meses forem iguais verificamos os dias 
    			if(this.getDia() > o.getDia()){
        			return 1;
        		} else if(this.getDia() == o.getDia()){
        			return 0;
        		}else{
        			return -1;
        		}
    		}else{
    			return -1;    			
    		}
    	}else{
    		return -1;    		    		
    	}
	}

	public int getDia() {
		return dia;
	}

	public void setDia(int dia) {
		this.dia = dia;
	}

	public int getMes() {
		return mes;
	}

	public void setMes(int mes) {
		this.mes = mes;
	}

	public int getAno() {
		return ano;
	}
	
	public void setAno(int ano) {
		this.ano = ano;
	}

	public LocalDate getData() {
		return data;
	}
	
	
	@Override
	public String toString() {
		return dia + "/" + mes +"/" +ano;
	}
}

Teste


	public static void main(String[] args) {
		Data data1 = new Data(19, 1, 1998);
		Data data2 = new Data(19, 1, 1996);
		Data data3 = new Data(19, 1, 1999);
		Data data4 = new Data(19, 1, 1992);
		List<Data> list = Arrays.asList(data1,data2,data3,data4);	
		Collections.sort(list);
		
		System.out.println(list);
	}

Espero ter ajudado