avatar
也问个 HashMap问题# Java - 爪哇娇娃
w*8
1
一起递的,回乡证多久才能拿到?
thx
avatar
i*p
2
哪位大牛解释一下这个#1
--------------------output--------
Insert
hashCode(clover)
hashCode(clover2)
equals(clover2, clover)
Search
hashCode(aiko) // #1 why is it used in find("k1")?
[email protected]
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));
}
}
avatar
i*p
3
哪位大牛解释一下这个#1
--------------------output--------
Insert
hashCode(clover)
hashCode(clover2)
equals(clover2, clover)
Search
hashCode(aiko) // #1 why is it used in find("k1")?
[email protected]
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));
}
}
avatar
z*e
4
楼主,你在dog类里面override这个方法
public String toString(){
return "fuck c++ morons";
}
再试试,你就知道了
avatar
Y*G
5
(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")?
: [email protected]
: hashCode(clover)

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

【在 Y**G 的大作中提到】
: (Dog) o).name == name错,为什么自己想。
avatar
a*i
8
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")?
: [email protected]
: hashCode(clover)

avatar
l*n
9
确实,这个跟他问得没有关系

【在 a****i 的大作中提到】
: 驴唇不对马嘴,和这个有关系吗?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。