62,615
社区成员
发帖
与我相关
我的任务
分享
import java.util.HashMap;
import java.util.Map;
class Dog{
public String name;
public Dog(String name){
this.name = name;
}
public boolean equals(Object o){
if((o instanceof Dog) && (((Dog)o).name == name)){
return true;
}else{
return false;
}
}
public int hashCode(){
return name.length();
}
public String toString(){
return name;
}
}
public class Test111226{
public static void main(String[] args) {
Map<Object, Object> m = new HashMap<Object, Object>();
Dog d1 = new Dog("clover");
m.put(d1, "DDDDOG");
System.out.println(m.get(d1));
d1.name = "magnolia";
for(Object o: m.keySet()){
System.out.println(o.hashCode());
System.out.println(o.toString());
}
System.out.println("================");
System.out.println(d1.hashCode());
System.out.println(d1.toString());
System.out.println("----------------");
System.out.println(m.get(d1));
}
}
import java.util.HashMap;
import java.util.Map;
class Dog{
public String name;
public Dog(String name){
this.name = name;
}
public boolean equals(Object o){
if((o instanceof Dog) && (((Dog)o).name == name)){
return true;
}else{
return false;
}
}
public int hashCode(){
return name.length();
}
public String toString(){
return name;
}
}
public class Test111226{
public static void main(String[] args) {
Map<Object, Object> m = new HashMap<Object, Object>();
Dog d1 = new Dog("clover");
m.put(d1, "DDDDOG");
System.out.println(m.get(d1));
//d1.name="123456";//输出DDDDOG
d1.name="1234567";//输出null,因为hashCode改变了。。。。
for(Object o: m.keySet()){
System.out.println(o.hashCode());
System.out.println(o.toString());
}
System.out.println("================");
System.out.println(d1.hashCode());
System.out.println(d1.toString());
System.out.println("----------------");
System.out.println(m.get(d1));
}
}