我正在尝试创建一个在Java中使用PhoneBook
的{{1}}类。当我在HashMap
中使用put()
方法添加条目时,它可以正常工作,但是当我尝试在addContact()
方法中检索值时,不会返回任何值。我没有得到空值; searchContact()
肯定包含我要搜索的密钥,但不会返回与密钥相关联的值。提前谢谢。
这是我的代码:
HashMap
答案 0 :(得分:3)
您的if语句正在检查电话簿是否有name
作为值,因此您的获取从未到达。
试试这个:
if (contactMap.containsKey(name))
return contactMap.get(name);
答案 1 :(得分:1)
正如另一个答案所指出的,你应该检查containsKey
,因为name
是一个关键,而不是一个值。但为什么不让整个事情变得更容易:
public List<String> searchContact(String name) throws NoDataFoundException {
List<String> result = contactMap.get(name);
if (result == null) {
// empty map, or no matching value or value is null
throw new NoDataFoundException();
}
}
答案 2 :(得分:0)
你在做:
if (contactMap.containsValue(name))
return contactMap.get(name);
你需要这样做:
if (contactMap.containsKey(name))
return contactMap.get(name);