Difference hashcode and equal, JAVA Programming

Assignment Help:

 

The hashCode() and equals() methods have to be very important, when objects implementing these two functions are added to collections. If not implemented or implemented incorrectly at all then your objects added in a collection like a Set, Map or List can behave strangely and also is hard to debug.

 

Equals ():

This method performs if some other object passed to it as an argument is same the object in which this method is called. It is easy to implement the equals() method incorrectly, if you do not understand the design. The contract can be stated in terms of 6 easy principles as given:

 

1. l1.equals(l1)  which defines an Object could be equal to itself.

 

2. l1.equals(l2) if and only if l2.equals(l1) So it may be incorrect to have your own class define "MySet" to have a equals() function that has a comparison with an Object of class "java.lang.String" class or with any other in built Java class.

 

3. l1.equals(l2) && l2.equals(l3) implies that l1.equals(o3) as well It defines that if the first object l1 same to the second object l2 and the second object l2 is similar to the third object l3 then the first object l1 is similar to the third object l3.  

 

4. l1.equals(l2) gives the same as long as l1 and l2 are unmodified if two objects are same, they must remain equal as long as they are not changed. Similarly, if they are not same, they must remain non-equal as long as they are not changed.

 

5. l1.equals(null)  which defines that any instantiable object is not same to null. So if you pass a null as an argument to your object l1, then it could give false.

 

6. l1.equals(l2) implies l1.hashCode() == o2.hashCode() ?? That is very important. If you define a equals() function then you must describe a hashCode() method as well. Also it gives that if you have two objects that are same then they must have the same hashCode, however the opposite is not true. So, If a field is not used in equals(), then it cannot be used in hashCode() function.

 

hashCode():

 

This method gives a hashCode() value as an Integer and is supported for the benefit of hashing based java.util.Collection classes like HashMap, Hashtable, HashSet etc. If a class overrides the equals() method, it must define the hashCode() method as well. The general design of the hashCode() method is that:

 

1. Whenever hashCode() method is called on the similar types object more than once during an execution of a Java program, this method must consistently give the same integer result. The integer result has not remained consistent from one execution of the program to the next execution of the same program.

 

2. If two objects are same as per the equals() method, then using the hashCode() method in each of the two objects must give the similar integer result. So, If a field is not used in equals(), then it cannot be used in hashCode() method.

3. If two objects are non equal as per the equals() method, each of the two objects can give either two same integer results or different integer results.

 


Related Discussions:- Difference hashcode and equal

Padovan String, A Padovan string P(n) for a natural number n is defined as:...

A Padovan string P(n) for a natural number n is defined as: P(0)=''X'' P(1)=''Y'' P(2)=''Z'' for a string characters ''X'',''Y'',''Z'' only,and given value of n,write a program th

Explain bios in java language, Explain BIOS in java language? BIOS bas...

Explain BIOS in java language? BIOS basically stand for Basic input/output system it is also called as the system BIOS or ROM BIOS is a de facto standard describing a firmware

Equation tool, i need help i hav done the gui part of my project and some s...

i need help i hav done the gui part of my project and some simple symbols but to display some complex symbols like integration and all but it shud be clear with lower and upper lim

For in statement, It is a distinct type of loop, used to iterate through th...

It is a distinct type of loop, used to iterate through the properties of an object or the elements of an array. For instance assume the following statement that loops through th

What is meant by semantic error, What is meant by semantic error? Occur...

What is meant by semantic error? Occur although a statement executes and has an effect not intended by the programmer and Frequently times occur just in unusual & infrequent ci

How does an exception permeate through the code, How does an exception perm...

How does an exception permeate through the code? An unhandled exception moves up the method stack in search of a matching When an exception is thrown from a code which is wrapp

Java server faces - eagro portal project, eAgro Portal Project: Techno...

eAgro Portal Project: Technology Used: Java Server Faces, JSR 168 Specification, Websphere Portal Server5.0, DB2 database And Rational Application Developer, Jasper Report Too

Demonstrate java client and server , There is no separate homework this wee...

There is no separate homework this week, but you may complete the exercises ahead of time, in which case you only need to attend for long enough to get your work marked off by your

Use of unicastremoteobject in rmi, What is the use of UnicastRemoteObject i...

What is the use of UnicastRemoteObject in RMI? Ans) The UnicastRemoteObject class gives support for point-to-point active object references using TCP streams. Objects that need

What do you mean by bean wiring, The act of making associations between app...

The act of making associations between application components (beans) within the Spring container is reffered to as Bean wiring.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd