[] 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 Hashcode () method of object in Java is not overridden, then the Hashcode () method returns the memory address ...
The ToString () method, as defined by the default object object, returns the Hashcode () return value of the package name + class name +@+16.
In our actual development, for example, the author defines
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
The Equals and Hashcode methods in Java are in object objects, so each object has these two methods, and most of the time we need to override both methods in order to implement the specific requirementsThe Equals and Hashcode methods are commonly used in the same class for c
; result = * result + linenumber; return result; } */ //if an object is not constantly changing, and the cost is relatively large, you have to consider it. Hash code is cached inside the object//with volatile modifiers, the thread will read the variable's most-modified value each time it uses the variable. Private volatile inthashcode; @Override Public inthashcode () {intresult =hashcode; if(Result = = 0) {result= 17; Result= *
The following is summarized from "effective Java".
1. When to rewrite equals ()
When a class has its own unique concept of "logical equivalence" (different from the concept of object identity).
2. Design Equals ()
[1] Use the instanceof operator to check whether the argument is the correct type.
[2] For each "critical field" in a class, check the field in th
= =: Compares the address or value of variables in the Java stack local variable table for equality.equals: The address of the comparison variable refers to whether the object is the same object in the Java heap.Hashcode: A hash value is returned through a specific algorithm through the storage address of the object in the JVM memory, mainly with the addition and deletion of HashSet HashMap.Public native
[Valid Java] 5. overwrite the hashcode and mongoshashcode when overwriting equals.
Package cn. xf. cp. ch02.item9; import java. util. hashMap; import java. util. map; public class PhoneNumber {private final short areaCode; private final short prefix; private final short line
that determines whether two objects are equal is:The first step, if hashcode () is equal, look at the second step, otherwise not equal ;The second step is to see if equals () is equal, and if they are equal, the two obj are equal or not equal. 1, firstEquals () andHashcode () These two methods are all fromInherited from the object class.Equals () is a comparison of the address values of two objects (that i
From http://blog.sina.com.cn/s/blog_4a5ca024010008tj.html below is the text
Xiao Cui's translation of Virgo "Equals method and Hashcode method" (2007-06-22-21:04:42
Cui (folk also called Tri, namely CY, see chat Record series), Hunan people, more than 20 years old, unmarried. Once aj*q*051 class team leader, the existing translation of the "Equals method and
Why must I rewrite hashcode while rewriting equal?Hashcode is different integers generated by the compiler for different objects. According to the equal method, if two objects are equal (equal), the two objects must call hashcode to produce the same integer result, that is, if equal is true, hashcode must be true, equa
;
} else if (!lastname.equals (other.lastname)) r Eturn false;
return true;
}? So by overriding the Equals () method in a class, we can compare whether different objects are equal under the same class.
2.Hash algorithm principle and hashcode deep understandingThere are two kinds of collection in Java, one is list, the other is set. The elements in the l
First,int hashcode (); is to support a hash table class such as HashMap, HashTable, and the like, use a hash table class. There are three contract classes for the int hashcode () method in the Java Object specification : (1) as long as the information used by the Equals me
Tags: blog HTTP Io OS ar Java for SP Div
First, I need to explain that you can rewrite these two methods in the class we write. At this time, from the syntax perspective, they do not matter.
In the object
public native int hashCode();
public boolean equals(Object obj) { return (this == obj);}The two rules are in the J
Why the equals and hashcode methods are used?Equals: Sometimes we need to closely compare whether two objects are equal (manually called by ourselves)Hashcode: it is because we want to save the unique object to the Collection (or there cannot be duplicate values in the actual collection, and we also need to compare whe
Tags: equals hashcode native object string
First, I have to explain that you can repeat these two methods in the class we write. At this time, from the syntax perspective, they do not matter.
In the object
public native int hashCode();
public boolean equals(Object obj) { return (this == obj);}The two rules are
In this article, I will show you my understanding of the hashcode and equals methods. I will discuss their default implementations and how to rewrite them correctly. I will also use the Toolkit provided by Apache commons for implementation.
Directory:
Hashcode () and equals () Usage
Override default implementation
If you write the equals method for a class, you should write the hashcode method at the same time.If the hashcode method is not provided, the compiler does not report errors and may not encounter any problems.Conflict-based hash tables (similar to Java. util. Set also use the same hash table) may cause unpredictable co
For the characteristics of the equals of the object class, for non-null references:1. Reflexivity: X.equals (x) return true;2. Symmetry: X.equals (y) is true, then y.equals (x) is also true;3. Transitivity: X.equals (y) is true,y.equals (z) is true, then X.equals (z) is also true;4. Consistency: X.equals (y) is the first call to True, then X.equals (y) for the second time, third time, ... , the nth invocation is also true, provided that no x is modifi
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.