Diferença Entre Igual E HashCode Em Java

Índice:

Diferença Entre Igual E HashCode Em Java
Diferença Entre Igual E HashCode Em Java

Vídeo: Diferença Entre Igual E HashCode Em Java

Vídeo: Diferença Entre Igual E HashCode Em Java
Vídeo: Гибкий Motorola RAZR — первый обзор 2024, Pode
Anonim

Diferença chave - igual a hashCode em Java

O igual é semelhante ao operador ==, que testa a identidade do objeto em vez da igualdade do objeto. O hashCode é um método pelo qual uma classe divide implícita ou explicitamente os dados armazenados em uma instância da classe em um único valor de hash, que é um inteiro assinado de 32 bits. A principal diferença entre equals e hashCode em Java é que equals é usado para comparar dois objetos, enquanto o hashCode é usado em hash para decidir em qual grupo um objeto deve ser categorizado.

CONTEÚDO

1. Visão geral e diferença principal

2. O que é igual em Java

3. O que é hashCode em Java

4. Comparação lado a lado - é igual a hashCode em Java em formato tabular

5. Resumo

O que é igual em Java?

O método equals é usado para comparar dois objetos. O método igual a padrão é definido na classe de objeto. Essa implementação é semelhante ao operador ==. As duas referências de objeto são iguais apenas se estiverem apontando para o mesmo objeto. É possível substituir o método equals.

Diferença entre igual e hashCode em Java
Diferença entre igual e hashCode em Java

Figura 01: Programa Java com iguais

A declaração System.out.println (s1.equals (s2)) dará a resposta falsa porque s1 e s2 estão se referindo a dois objetos diferentes. Era semelhante à instrução System.out.println (s1 == s2);

A instrução System.out.println (s1.equals (s3)) dará a resposta verdadeira porque s1 e s3 estão se referindo ao mesmo objeto. Era semelhante à instrução System.out.println (s1 == s3);

Não existe um método igual na classe do aluno. Portanto, o igual na classe Object é chamado. True é exibido apenas se a referência do objeto estiver apontando para o mesmo objeto.

Diferença entre igual e hashCode em Java Figure 02
Diferença entre igual e hashCode em Java Figure 02

Figura 02: Programa Java com igual a Substituído

De acordo com o programa acima, o método equals é substituído. Um objeto é passado para o método e seu tipo é lançado para o Aluno. Em seguida, os valores de id são verificados. Se os valores de id forem semelhantes, ele retornará verdadeiro. Caso contrário, ele retornará falso. Os ids de s1 e s2 são semelhantes. Portanto, será impresso verdadeiro. Os ids de s1 e s3 também são semelhantes, portanto, a impressão será verdadeira.

O que é hashCode em Java?

O hashCode é usado em hash para decidir em qual grupo um objeto deve ser categorizado. Um grupo de objetos pode compartilhar o mesmo hashCode. Uma função de hash correta pode distribuir objetos uniformemente em grupos diferentes.

Um hashCode correto pode ter as seguintes propriedades. Suponha que haja dois objetos como obj1 e obj2. Se obj1.equals (obj2) for verdadeiro, então o obj1.hashCode () é igual a obj2.hashCode (). Se obj1.equals (obj2) for falso, não é necessário que obj1.hashCode () não seja igual a obj2.hashCode (). Os dois objetos desiguais também podem ter o mesmo hashCode.

Diferença entre igual e hashCode em Java Figure 03
Diferença entre igual e hashCode em Java Figure 03

Figura 03: Aula do aluno com igual e hashCode

Diferença chave entre igual e hashCode em Java
Diferença chave entre igual e hashCode em Java

Figura 04: Programa Principal

A classe Student contém os métodos equals e hashCode. O método equals na classe Student receberá um objeto. Se o objeto for nulo, ele retornará falso. Se as classes dos objetos não forem iguais, ele retornará falso. Os valores de id são verificados em ambos os objetos. Se eles forem semelhantes, ele retornará verdadeiro. Caso contrário, ele retornará falso.

No programa principal, os objetos s1 e s2 são criados. Ao chamar s1.equals (s2) dará verdadeiro porque o método equals é sobrescrito e verifica os valores de id dos dois objetos. Mesmo que eles se refiram a dois objetos, a resposta é verdadeira porque os valores de id de s1 e s2 são os mesmos. Como s1.equals (s2) é verdadeiro, o hashCode de s1 e s2 deve ser igual. Imprimir o hashCode de s1 e s2 dá o mesmo valor. O método hashCode pode ser usado com coleções como HashMap.

Qual é a diferença entre igual e hashCode em Java?

Artigo Diff meio antes da tabela

é igual a vs hashCode em Java

equals é um método em Java que atua de forma semelhante ao operador ==, que testa a identidade do objeto em vez da igualdade do objeto. hashCode é um método pelo qual uma classe divide implícita ou explicitamente os dados armazenados em uma instância da classe em um único valor hash.
Uso
O método equals é usado para comparar dois objetos. O método é usado em hashing para decidir em qual grupo um objeto deve ser colocado.

Resumo - é igual a hashCode em Java

A diferença entre equals e hashCode em Java é que equals é usado para comparar dois objetos, enquanto o hashCode é usado em hash para decidir em qual grupo um objeto deve ser categorizado.

Recomendado: