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
Java =, equals (), hashCode () Source Code AnalysisComparison of = and equals () is often encountered in java programming or interviews. I looked at the source code and summarized it with the actual programming. 1. = in java, the
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 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
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
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
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
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
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
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
relation on objects;
* That's, for any non-null reference values {@code x} and
* {@code y}, this is returns {@code true} if and only
* If {@code x} and {@code y} refer to the same object
* ({@code x = = y} has the value {@code true}).
* * The It is generally necessary to override the {@code hashcode}
* Method whenever this and is overridden, and so as to maintain the
* General contract for the {@code hashc
("") ; //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
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
[] 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
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
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.