Dúvida em Comparator [RESOLVIDO]

2 respostas
T

Estava lendo o livro da Kathy Sierra e, na página 574, que fala sobre a interface Comparator (não Comparable). Lá existe a seguinte afirmação:

“The Comparator interface gives you the capability to sort a given collection any number of different ways.”

Sendo que na próxima página, ela também afirma:

java.lang.Comparable: Only one sort sequence can be created
java.lang.Comparator: Many sort sequences can be created

O que ela quer dizer com “many sort sequences can be created” ?

2 Respostas

V

significa que vc pode criar diferentes formas de comparação ex:

public class Cliente {

  private String nomeCliente;

  
  class MyComparator1 implements Comparator<Cliente> {

    //uma forma de comparar
    public int compare(Cliente c1, Cliente c2) { 
      return 0;
    }
  }

  class MyComparator2 implements Comparator<Cliente> {

    //uma outra forma de comparar
    public int compare(Cliente c1, Cliente c2) { 
      return 0;
    }
  }

  //ex de uso
  public void testar() {
    //cria um conjunto com uma determinada forma de comparação
    TreeSet<Cliente> conjunto1 = new TreeSet<Cliente>(new MyComparator1());
    //cria um segundo conjunto com a outra forma de comparação
    TreeSet<Cliente> conjunto2 = new TreeSet<Cliente>(new MyComparator2());
     //fazer algo
  }
  public static void main(String[] args) {
   
    new Cliente().testar();
  }
}

reparou, dentro de uma classe eu criei 2 formas diferentes de comparar dados, sendo que quando vc implementa Comparable vc só terá uma forma…

T

Humm, ok, perfeito! :thumbup:

Obrigado vmsb11 !

Criado 31 de janeiro de 2010
Ultima resposta 31 de jan. de 2010
Respostas 2
Participantes 2