由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 也问个 HashMap问题
相关主题
问HashSet的问题?Re: 谁有Java或Oracle的毒招 ?
请教一段代码,关于hashCode()Do I need to implement equals and hashCode in domain object
问个Object.hashCode()的问题TIJ上写错了?
Object比较关于==和equals
Java的工作面试主要考什么?主要是算法吗?[转载] Java 1.5 Generic 问题
treemap和hashma p的问题answer Re: how HashMap/Hashtable compare key?
问个hashtable实现问题[转载] How do I sort a map in Java?
问个set和literal String的问题请问这个面试题,关于synchronize hashmap
相关话题的讨论汇总
话题: dog话题: hashcode话题: object话题: name话题: clover2
进入Java版参与讨论
1 (共1页)
i**p
发帖数: 902
1
哪位大牛解释一下这个#1
--------------------output--------
Insert
hashCode(clover)
hashCode(clover2)
equals(clover2, clover)
Search
hashCode(aiko) // #1 why is it used in find("k1")?
Dog@4
hashCode(clover)
equals(clover, clover2)
Dog key
----------code
import java.util.ArrayList;
import java.util.List;
import java.util.*;
class Dog {
public Dog(String n) {
name = n;
}
public String name;
public boolean equals(Object o) {
System.out.printf("equals(%s, %s)n", name, ((Dog) o).name);
if ((o instanceof Dog) && (((Dog) o).name == name)) {
return true;
} else {
return false;
}
}
public int hashCode() {
System.out.printf("hashCode(%s)n", name);
//return name.length();
return 4;
}
}
public class Main {
public static void main(String[] args) {
Map m = new HashMap();
System.out.println("Insert");
m.put("k1", new Dog("aiko")); // add some key/value pairs
Dog d1 = new Dog("clover"); // let's keep this reference
m.put(d1, "Dog key");
Dog d2 = new Dog("clover2");
m.put(d2, "Dog key 2");

System.out.println("Search");
System.out.println(m.get("k1"));
System.out.println(m.get(d1));
}
}
i**p
发帖数: 902
2
哪位大牛解释一下这个#1
--------------------output--------
Insert
hashCode(clover)
hashCode(clover2)
equals(clover2, clover)
Search
hashCode(aiko) // #1 why is it used in find("k1")?
Dog@4
hashCode(clover)
equals(clover, clover2)
Dog key
----------code
import java.util.ArrayList;
import java.util.List;
import java.util.*;
class Dog {
public Dog(String n) {
name = n;
}
public String name;
public boolean equals(Object o) {
System.out.printf("equals(%s, %s)n", name, ((Dog) o).name);
if ((o instanceof Dog) && (((Dog) o).name == name)) {
return true;
} else {
return false;
}
}
public int hashCode() {
System.out.printf("hashCode(%s)n", name);
//return name.length();
return 4;
}
}
public class Main {
public static void main(String[] args) {
Map m = new HashMap();
System.out.println("Insert");
m.put("k1", new Dog("aiko")); // add some key/value pairs
Dog d1 = new Dog("clover"); // let's keep this reference
m.put(d1, "Dog key");
Dog d2 = new Dog("clover2");
m.put(d2, "Dog key 2");

System.out.println("Search");
System.out.println(m.get("k1"));
System.out.println(m.get(d1));
}
}
z****e
发帖数: 54598
3
楼主,你在dog类里面override这个方法
public String toString(){
return "fuck c++ morons";
}
再试试,你就知道了
Y**G
发帖数: 1089
4
(Dog) o).name == name错,为什么自己想。

【在 i**p 的大作中提到】
: 哪位大牛解释一下这个#1
: --------------------output--------
: Insert
: hashCode(clover)
: hashCode(clover2)
: equals(clover2, clover)
: Search
: hashCode(aiko) // #1 why is it used in find("k1")?
: Dog@4
: hashCode(clover)

l******n
发帖数: 577
5
(Dog) o).name == name 错了,name是string,你这样写比较的是地址。即便两个
string内容一样地址也可能不一样的。
a****i
发帖数: 1182
6
驴唇不对马嘴,和这个有关系吗?

【在 Y**G 的大作中提到】
: (Dog) o).name == name错,为什么自己想。
a****i
发帖数: 1182
7
m.put("k1", new Dog("aiko")); // add some key/value pairs
~~~~~~~~~~~~~~~~~
你搞了个dog在这里,所以就打印了hashCode(aiko)

【在 i**p 的大作中提到】
: 哪位大牛解释一下这个#1
: --------------------output--------
: Insert
: hashCode(clover)
: hashCode(clover2)
: equals(clover2, clover)
: Search
: hashCode(aiko) // #1 why is it used in find("k1")?
: Dog@4
: hashCode(clover)

l******n
发帖数: 577
8
确实,这个跟他问得没有关系

【在 a****i 的大作中提到】
: 驴唇不对马嘴,和这个有关系吗?
1 (共1页)
进入Java版参与讨论
相关主题
请问这个面试题,关于synchronize hashmapJava的工作面试主要考什么?主要是算法吗?
请教一个语法和递归的问题treemap和hashma p的问题
大家写java class的时候是完全封装的么?问个hashtable实现问题
hashCode() in String Class问个set和literal String的问题
问HashSet的问题?Re: 谁有Java或Oracle的毒招 ?
请教一段代码,关于hashCode()Do I need to implement equals and hashCode in domain object
问个Object.hashCode()的问题TIJ上写错了?
Object比较关于==和equals
相关话题的讨论汇总
话题: dog话题: hashcode话题: object话题: name话题: clover2