【发布时间】:2015-11-16 22:57:05
【问题描述】:
我将联系人列表存储为“Person”类型的 HashMap,并希望有一个搜索功能,我可以搜索 HashMap,然后返回所有名字为“John”且居住在美国的人,例如。我的想法是创建一个 Person 的 ArrayList 并循环添加每个值:
Map<Person, Person> hm = new HashMap<Person, Person>();
ArrayList<String> result = new ArrayList<String>();
Enumeration num= hm.keys();
String name = "John";
String location = "USA";
while (num.hasMoreElements()) {
Person person = (Person) num.nextElement();
if(person.name.equals(name) && person.location.equals(location))
{
result.add(person);
}
我只是想知道这是否可以正常工作,或者是否有一些我忽略的更好的方法。
谢谢
【问题讨论】:
-
您使用的是
Map<Person, Person>,但看起来您确实应该使用Set<Person>。你可以阅读更多:java67.blogspot.com.au/2013/01/…
标签: java loops search arraylist hashmap