java hashmap返回键和输入的特定键的值
我正在使用hashmaps,遇到了一个问题。在我的程序中,我正在开发一个地址簿,每个人都有名字和姓氏以及相应的地址。因此,我的hashmap的键是person对象,值是address。我正在尝试迭代hashmap并打印指定人员的密钥和值,以下是迄今为止我的代码:java hashmap返回键和输入的特定键的值,java,search,hashmap,Java,Search,Hashmap,我正在使用hashmaps,遇到了一个问题。在我的程序中,我正在开发一个地址簿,每个人都有名字和姓氏以及相应的地址。因此,我的hashmap的键是person对象,值是address。我正在尝试迭代hashmap并打印指定人员的密钥和值,以下是迄今为止我的代码: public class AddressBook { private Map<Person, Address> contacts = new ConcurrentHashMap<Person, Address&
public class AddressBook {
private Map<Person, Address> contacts = new ConcurrentHashMap<Person, Address>();
public void addContact(Person p, Address a) {
this.contacts.put(p, a);
}
public void removeContact(Person p) {
this.contacts.remove(p);
}
public boolean hasContact(Person p) {
return this.contacts.containsKey(p);
}
public void listAllContacts(){
for (Map.Entry<Person,Address> entry : contacts.entrySet()) {
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
public void listContact(Person p){
for (int i=0;i<contacts.size();i++) {
}
}
}
公共类通讯簿{
私有映射联系人=新的ConcurrentHashMap();
公共联系人(p人,地址a){
这个.触点.put(p,a);
}
公共无效删除联系人(p人){
此。触点。移除(p);
}
公共联系人(p人){
返回此.contacts.containsKey(p);
}
public void listAllContacts(){
对于(Map.Entry:contacts.entrySet()){
System.out.println(entry.getKey()+“:”+entry.getValue());
}
}
公共联系人(p人){
对于(int i=0;i我通过简单地使用toString方法打印KeySystem.out.println(p.toString()+contacts.get(p));
和get()
检索该键的值的方法如果我不了解如何从键中获取值,地图将几乎没有那么大的用处,我要问的是如何打印键和特定键的值。因为地图不是由单个名称键入的,所以您必须扫描整个地图,并找到所有人名为Charles的条目
。也许你应该重新考虑一下你要查找的内容,以及是否可以有多个条目,例如两个或多个名为Charles
,或者一些名为Charles
的人和其他姓为Charles
的人。我开始认为我的措辞相当糟糕。好的,假设Person对象p1不是键和对象p1有一个地址值。是否有方法打印对象p1键及其值,如.getKey和.getValue但对于一个对象,当您可以简单地将地址作为Person
类的字段时,为什么要使用映射将地址与人关联?