One, the same pointare used to compare values or objects.Two, different pointsfor "= =", for the base type (Char,byte,short,int,long,float,double,boolean), the comparison is the value, so is equal, for the reference object, compared to the referenced object's heap address, for example: Public class Main { publicstaticvoidthrows interruptedexception { New Object (); New Object (); = = obj2);} }Note For wrapper classes such as Integer, there are some special.For the
The content of this chapter mainly addresses the following issues:
What is the role of 1 equals ()?
What is the difference between 2 equals () and = =?
What is the role of 3 hashcode ()?
4 What is the connection between hashcode () and Equals ()?
Role of the 1th part
When to use Hashcode, when to use equals?First Java generates a default hashcode for each object, the Java core is the memory address of the Java object, but the Equals method compares
I recently used Java to write programs and found that these two functions are not well mastered. So I have been studying these functions for a long time.
The contains method is redefined to quickly check whether an element already exists in the set. He only looks for elements in a bucket, without having to view all elements in the set ." -- Core Java
When comparing whether a set contains an object, call t
over manually constructed equals () and Hashcode () methods (or Those Awful Monsters Eclipse would generate for your), but the guava versions is even Better.And a note about Hibernate:Be careful is about using the lazy collections in your equals (), hashcode () and toString () implementations. that'll fail miserably I
I. Overview
1, Concept = =: This operator generates a Boolean result, which computes the relationship between the operands ' values EQUAL3 intention: $ Two objects n%sp;content is EA6 the same hashcode: the HA%%c value of the object, for 7E 7 The object in the Ha%%5 table in the index bit 뽮, it is actually 8b8 int type integer two, relational operator = =
1, the value of the operand
In Java, there are eigh
In each class that overrides the Equals method, you must also overwrite the Hashcode method.General conventions for Hashcode:1 during the execution of a program, the Hashcode method must consistently return the same integer as long as the information used to compare the Equals
Value) is returned ).
If we want to get the expected results, we need to rewrite the toString method.
[Java]Package mark. demo;Public class EnumDemo {Public static void main (String [] args ){For (Color color: Color. values ()){System. out. println (color );}}Public enum Color {RED ("red color", 0), GREEN ("green color", 1), BLUE ("blue color", 2), YELLOW ("Yellow color", 3 );Color (String name, int id ){_ Name = name;_ Id = id;}Private String _ name
Equals in object is used to compare the equality of two objects, in general, when overriding this method, it is often necessary to also rewrite hashcode to maintain the general contract of the Hashcode method, which declares that the equality object must have an equal hash code. That is: if Obj1.equals (OBJ2) is true
same.Rewrite the sample code for Hashcode:
public int hashcode () {SOP (THIS.name + "... hashcode");return This.name.hashCode () + 29*age;}
Thirdly, what is the mechanism of ArrayList?[1]. HashSet judgment, deletion, and addition of elements are based on the hashcode () and
I need to record some of the things I saw in Sunday, or I'll forget about them.Hashcode, equals:1) Each Java object has the Hashcode and equals methods.The ultimate Java class is the object class, so how does the object class label itself, that is, how the class of object di
In Java, equals and hashcode have design requirements, equals equal, then hashcode must be equal, or vice versa. Why is there such a requirement? In the collection, such as HashSet, the object required to be placed can not be repeated, how to determine it? The
When learning Java basic data types and complex data types, especially equals () "= =" and the Hashcode () part, not very understand, also stayed a long time, finally a bit of a look.To understand equals () "= =" and Hashcode (), it's a good idea to first understand the heap
Download Java interview book:Http://download.csdn.net/source/3563084
Set and list are two sub-interfaces of collection. The elements in set must be unique. Therefore, the equals method must be rewritten. For the hashset method, the hashcode method must be rewritten.
When an element is added to a hahset, It is not added to determine whether the element already ex
1.equals ()
In the beginner Java, many people will say that when comparing objects, = = is the comparison of the address, equals () is the content of the comparison object, who said?
Look at the definition of the Equals () method in the object class:
public boolean equals
There are three methods in the object class in Java that have hashcode (), Equals (), and toString (), so there are three methods in all the classes in Java.In the object class the implementation of the ToString () method is the address of the printed object, which is printed out of the human can not understand, this information is not useful to print out. So in
("") ; //System.out.println ("HashMap object hashcode:" + mi.hashcode ());Hm.put (HM, "XX") ; //get a value from HashMap using the Get method of HashMap /** 1. Calculate its hash value according to the object passed in, and find the corresponding array position. * 2. The Equals method is used to determine whether the value on the array position is equal to the value. * 3. Equal retur
[] args) {CollectionNewHashset(); for(inti = 0; I ) {C.add (NewTeacher (i)); } System.out.println ("Collection" +c); Teacher T1=NewTeacher (1); System.out.println ("Teacher" +t1); System.out.println (C.contains (t1)); }}View CodeAfter execution, you can see:Collection, [Teacher [Id=0], Teacher [id=1], Teacher [id=2], Teacher [id=3], Teacher [id=4Teacher [id=] 1]falseView CodeIt is clear that the collection considers that the object with ID 1 does not exist in the collection.Because, the coll
the enumerated Constant Value) is returned ).
If we want to get the expected results, we need to rewrite the tostring method.
package mark.demo;public class EnumDemo {public static void main(String[] args) {for (Color color : Color.values()) {System.out.println(color);}}public enum Color {RED("red color", 0), GREEN("green color", 1), BLUE("blue color", 2), YELLOW("yellow color", 3);Color(String name, int id) {_name = name;_id = id;}private String _name;private int _id;public String getName()
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.