Logo pt.removalsclassifieds.com

Diferença entre comparável e comparador (com tabela)

Índice:

Anonim

Comparable e comparator são interfaces de java, que é uma linguagem de programação de alto nível, usada para classificar elementos de coleção. Java basicamente fornece essas duas interfaces distintas para classificar os objetos. Existem muitas diferenças notáveis ​​entre as duas interfaces que criam uma linha entre as duas com base na função que executam.

Comparável vs Comparador

As diferenças entre comparável e comparador são distintas em vários parâmetros, como a interface anterior é usada para classificar a coleção por meio de um único elemento, enquanto a interface posterior é usada para classificar a coleção por meio de vários elementos. Uma certa classe tem que implementar java. Interface Lang.Comparable para poder comparar com eficiência suas instâncias, enquanto a interface do comparador é externa ao tipo de elemento que está sendo comparado.

Comparable é uma interface que está presente no pacote lang da linguagem java, e seu objetivo é classificar os elementos da coleção usando apenas um único atributo, como idade, preço, id, nome, etc. É capaz de comparar a si mesmo com qualquer outro objeto. Um objeto de qualquer tipo, seja uma lista ou um array, pode ser classificado.

Comparator é uma interface que está presente no pacote de utilitários da linguagem java e seu objetivo é classificar os elementos da coleção usando vários atributos ao mesmo tempo. É uma classe separada e externa ao tipo de elemento que está sendo comparado. A classe de coleções fornece um segundo método de classificação que aceita um comparador como parâmetro.

Tabela de comparação entre comparável e comparador

Parâmetros de comparação

Comparável

Comparador

Tipo de classificação Ele fornece uma única sequência de classificação. Ele fornece várias sequências de classificação.
Modificação de classe Ele modifica a classe real. Não modifica a classe real.
Localização do pacote Ele está presente no pacote java-lang. Está presente em java. pacote util.
Métodos Ele tem o método compareTo (). Ele tem o método compare ().
Métodos de classificação Método Collections.sort (List). Método Collections.sort (List, Comparator).

O que é comparável?

Conforme discutido acima, comparável é uma interface da linguagem de programação java que está presente no pacote lang e é usada para classificar os elementos da coleção usando apenas um atributo. A interface comparável contém apenas um único método que é compareTo (). O objeto comparável é capaz de se comparar com os outros objetos. Para que a classe possa comparar as instâncias, é uma condição necessária para a classe implementar a interface comparável.

Uma interface comparável foi desenvolvida para os objetos com ordenação natural. Em outras palavras, isso significa que o objeto a ser classificado deve ter a ordem em que deve ser classificado. Em termos lógicos, a interface comparável compara “esta” referência com o objeto mencionado no método. Quando a interface comparável é implementada por qualquer classe, o objeto dessa classe pode ser classificado usando as Coleções. sort () ou os Arrays. método sort ().

Os objetos serão classificados automaticamente na ordem natural definida pelo método CompareTo. Números, strings e muitos outros tipos podem ser comparados. Strings podem ser comparados usando comparação alfabética. Várias classes integradas de java implementam a interface comparável. A coisa mais importante que deve ser mantida em mente é que a interface comparável só pode ser usada para comparar os objetos da mesma classe.

O que é comparador?

A interface de comparação da linguagem de programação java está presente no pacote de utilitários e é usada para classificar a coleção com base em vários atributos de uma vez. Comparator é uma classe totalmente separada. Os programadores usam para criar várias classes que implementam a interface do comparador com o propósito de comparar diferentes objetos.

Para comparar qualquer objeto de coleção, a primeira etapa é criar uma classe implementando o método comparator, que contém o método compare (). A etapa a seguir é fazer uma instância dessa classe implementando a interface do comparador. A última etapa é chamar o método sobrecarregado, que é o método sort (), e atribuir a lista e a instância da classe que foi criada na etapa anterior.

A interface do comparador compara dois objetos de classes diferentes. A interface Comparator possui dois métodos, que são o método compare () e o método equals (). O método compare () usa dois objetos diferentes como seu parâmetro para comparar, e o método equals () determina se o objeto que está sendo passado é igual ao comparador de chamada. O método equals () retorna um valor booleano como sua saída. True é retornado quando o objeto é passado e o objeto de chamada é ambos comparadores e, se não, false é retornado.

O método compare () retorna um valor inteiro em sua saída que indica o maior entre os dois objetos passados.

Principais diferenças entre comparável e comparador

Conclusão

Embora ambas as interfaces sejam usadas para fins de classificação, ambas são totalmente diferentes uma da outra. Existem muitos parâmetros ou fundamentos com base nos quais eles são usados ​​de forma diferente em elementos de lista para diferentes propósitos. Se um indivíduo deseja classificar quaisquer elementos da lista com base em um único elemento da coleção, a interface comparável pode ser implementada; caso contrário, se o indivíduo quiser classificar qualquer elemento da lista com base em vários atributos, essa coleção específica deve ser classificada implementando a interface do comparador. Ambas as interfaces são desenvolvidas para serem utilizadas para fins separados.

Referências

  1. https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
  2. https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
  3. https://ieeexplore.ieee.org/abstract/document/6042862/

Diferença entre comparável e comparador (com tabela)