我们如何决定hashCode()集合方法的最佳实现(假设equals方法已被正确覆盖)?
两个结果之间有什么区别.
当我用键空值时
当密钥本身不存在时
在上面两个条件结果都是null.那么如何识别我的关键价值呢?
Map map = new HashMap();
map.put(1,null);
System.out.println(map.get(1));
System.out.println(map.get(2));
Run Code Online (Sandbox Code Playgroud)
回答:
null
null
Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个创建PhoneBook使用的练习HashMap.
但是我看到我的addPhone方法没有添加新手机到我的PhoneBook pbie data.put(name, num);方法里面我addPhone没有把数据放进去HashMap data.
有人可以解释我这里有什么问题吗?
UPD
现在我明白这是一个错误,我用的是containsValue方法而不是containsKey.很简单!
但是这个问题与建议的现有问题完全不相似.我并没有要求Is checking for key existence in HashMap always necessary?我知道HashMap根据关键或价值进行搜索的方法.这个问题实际上是由一个错误引起的.但是我在这里收到了非常广泛和有用的答案.我相信这些答案,特别是davidxxx的答案非常好,可能对很多人有用.
import java.util.HashMap;
public class PhoneBook {
private HashMap<String, String> data;
public PhoneBook()
{
data = new HashMap<String, String>();
}
public void addPhone(String name, String num)
{
data.put(name, num);
}
//a
public String getPhone(String name){
if(data.containsValue(name)){
return data.get(name);
}
else
return null; …Run Code Online (Sandbox Code Playgroud)