Exemplo Comparator x Comparable

================================Main.java

import java.util.ArrayList;

import java.util.Collections;

public class Main {

public Main() {

ArrayList<Cachorro> l = new ArrayList<>();

for (int i = 0; i < 10; i++) {

l.add(new Cachorro((int) (Math.random() * 10)));

}

System.out.println(l);

Collections.sort(l, new CachorroComparator());

// Collections.sort(l);//para esta linha funcionar voce precisa implementar a interface Comparable na classe Cachorro

System.out.println(l);

}

public static void main(String[] args) {

new Main();

}

}

===========================================

====================================Cachorro.java

public class Cachorro {//implements Comparable<Cachorro>{


private int idade;


public Cachorro(int idade){

this.idade = idade;

}

public int getIdade() {

return idade;

}


public String toString() {

return "Cachorro, idade:"+idade;

}

// @Override

// public int compareTo(Cachorro o) {

// return idade - o.getIdade();

// }

}

===========================================

=====================================CachorroComparator.java

import java.util.Comparator;

public class CachorroComparator implements Comparator<Cachorro> {

@Override

public int compare(Cachorro o1, Cachorro o2) {

return o1.getIdade() - o2.getIdade();

}

}

======================================