Open karenbiblio opened 2 years ago
Oi, Karen. Tudo bem? (: Primeiramente muito obrigada pelo feedback. Fico muito feliz em saber que você está gostando das aulas, <3 Isso 1 Comparable e diversos Comparators para uma classe.
O Comparable permite que você determine uma regra de comparação para a classe que implementar essa interface, como uma espécie de regra padrão ou regra oficial. Vamos ver os exemplos abaixo, com as classes String e Integer. Essas classes que usamos todos os dias e já são do próprio Java:
String
ela implementa o Comparable
e por default organizamos as Strings
por ordem alfabética.
Integer
. A classe Integer implementa a interface Comparable
e conseguimos ordenar por ordem numérica.
E nós temos a nossa classe Gato
e queremos dizer que por padrão, quando precisamos comparar objetos do tipo Gato
, fazemos isso pelo atributo nome (poderia ser por qualquer outro atributo). Para isso, basta implementar a interface Comparable
e sobreescrever o método compareTo e criar a regra de comparação:
Mas vamos supor que eu queira sair dessa "regra padrão". Além de comparar por nome, quero comparar de outras formas, mas quero deixar o nome como padrão e eventualmente escolher outras regras.
Aí, criamos nossas prórias classes comparadoras, que vão extender a classe Comparator
fazendo cada uma a sua própria regra.
Ficou mais claro agora?
Mais deixa eu te contar uma coisa boa: No final desse curso, vamos conhecer as Streams API. Essa API tem uma forma super fácil de fazer essas comparações sem precisar criar classes várias para isso. Porém é importante você ter esses conceitos de Comparator X Comparable na ponta da língua que vai te ajudar bastante quando chegarmos lá!
Se ainda não ficou claro, pode falar que vamos resolvendo juntas. (:
Olá Camila, tudo bem? Obrigada pelas aulas ❤️
Na aula de Lists - Ordenação de elementos em uma coleção List - exemplos dos Gatos:
Você criou um "Comparable Nome" e depois criou "Comparator para Cor e Idade". Você dizia na aula que: "como criou um Comparable para Nome, para os outros tinha que ser Comparator". Significa que, só pode haver 1 Comparable enquanto pode haver vários Comparators num mesmo programa?
Agradeço