我将一个联系人列表存储为类型为“Person”的HashMap,并希望具有搜索功能,以便我可以搜索HashMap并返回名为“John”的所有人以及例如,住在美国的人。我的想法是只要创建人与环的ArrayList通过增加每个值作为例如:在多个值中搜索一个HashMap
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',但看起来您确实应该使用'Set '。您可以阅读更多:http://java67.blogspot.com.au/2013/01/difference-between-set-list-and-map-in-java.html –