你能像在 ArrayList 中那样循环遍历 HashMap 吗?所以如果我有一类人:
public class Person
{
private String name;
private int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
然后有一类成员资格,并使用数组列表我可以确保名称不重复:
import java.util.ArrayList;
public class Memberships
{
private ArrayList<Person> members;
public Memberships()
{
ArrayList<Person> members = new ArrayList<Person>();
}
public void addMember(String name, int age)
{
Person p = new Person(name, age);
for (Person membs : members)
{
if (membs.getName().equals(name) && membs.getAge()==age)
{
return;
}
}
members.add(p);
}
}
但是,如果我想使用带有名称和年龄的哈希映射:
HashMap<String, Integer> members = new HashMap<String, Integer>();
然后我想做同样的事情,并检查姓名和年龄与另一种情况不同,我可以使用循环检查吗?
public class Memberships
{
private HashMap<String, Integer> members;
public Memberships()
{
members = new HashMap<String, Integer>();
}
public void addMember(String name, int age)
{
members.put(name, age);
}
}
我知道这样做有点奇怪,我只是想了解 HashMaps。
好的,所以我改变了它,所以:
HashMap<Person, ID> members = new HashMap<Person, ID>();
然后我想:
public void addMember(String name, int age)
{
Person p = new Person (name, age);
members.put(p, id);
//**Say the id is a randomly generated number, that I don't really care about now
}
如何检查人员 p 的姓名和年龄是否与成员哈希图中的另一个人不同?