【发布时间】:2018-08-25 15:33:48
【问题描述】:
我正在尝试使用HashMap 创建PhoneBook。
但是我看到我的addPhone 方法不会将新手机添加到我的PhoneBook pb 即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;
}
//b
public void ToString(){
data.toString();
}
public static void main(String[] args) {
PhoneBook pb = new PhoneBook();
pb.addPhone("shlomi", "12312413yuioyuio24");
pb.addPhone("shlomi1", "1231345345241324");
pb.addPhone("shlomi2", "12312445735671324");
System.out.println(pb.getPhone("shlomi"));
System.out.println(pb.getPhone("blat"));
pb.ToString();
}
}
【问题讨论】: