我不确定如何使用get()来获取我的信息.看着我的书,他们把钥匙传给了get().我认为get()返回与该键相关联的对象查看文档.但我必须在这里做错事......有什么想法吗?
import java.util.*;
public class OrganizeThis
{
/**
Add a person to the organizer
@param p A person object
*/
public void add(Person p)
{
staff.put(p, p.getEmail());
System.out.println("Person " + p + "added");
}
/**
* Find the person stored in the organizer with the email address.
* Note, each person will have a unique email address.
*
* @param email The person email address you are looking for.
*
*/
public Person findByEmail(String email)
{
Person aPerson = staff.get(email);
return aPerson;
}
private Map<Person, String> staff = new HashMap<Person, String>();
public static void main(String[] args)
{
OrganizeThis testObj = new OrganizeThis();
Person person1 = new Person("J", "W", "111-222-3333", "JW@ucsd.edu");
testObj.add(person1);
System.out.println(testObj.findByEmail("JW@ucsd.edu"));
}
}
Run Code Online (Sandbox Code Playgroud)
你做错的是你以相反的顺序插入密钥和值(假设你想要电子邮件作为密钥).您可以在看到文档的签名put需要(key, value).
更改
staff.put(p, p.getEmail());
Run Code Online (Sandbox Code Playgroud)
至
staff.put(p.getEmail(), p);
Run Code Online (Sandbox Code Playgroud)
和
private Map<Person, String> staff = new HashMap<Person, String>();
Run Code Online (Sandbox Code Playgroud)
至
private Map<String, Person> staff = new HashMap<String, Person>();
Run Code Online (Sandbox Code Playgroud)
现在,您将能够Person通过其电子邮件地址查找.