Giter Club home page Giter Club logo

Comments (1)

cami-la avatar cami-la commented on June 14, 2024

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:

  • A classe String ela implementa o Comparable e por default organizamos as Strings por ordem alfabética.
    2022-07-19_15-35
  • Da mesma forma acontece com o Integer. A classe Integer implementa a interface Comparable e conseguimos ordenar por ordem numérica.
    2022-07-19_15-34

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:

2022-07-19_15-40

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.

2022-07-19_15-43

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. (:

from curso-dio-intro-collections.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.