Java HashMap-搜索对象的值并添加到列表
我有两个班:健身房和健身房会员。当前Gym将所有gymMember存储在一个HashMap gymMembers中,其中String是他们的成员ID(String) 成员持有以下变量:Java HashMap-搜索对象的值并添加到列表,java,hashmap,Java,Hashmap,我有两个班:健身房和健身房会员。当前Gym将所有gymMember存储在一个HashMap gymMembers中,其中String是他们的成员ID(String) 成员持有以下变量: this.fullName = aName; this.address = anAddress; this.area = anArea; 我想搜索HashMap gymMembers,找出区域1中存储在变量this.area中的成员,然后将gymMember对象返回到一个新集合 到目前为止,我已经做
this.fullName = aName;
this.address = anAddress;
this.area = anArea;
我想搜索HashMap gymMembers,找出区域1中存储在变量this.area中的成员,然后将gymMember对象返回到一个新集合
到目前为止,我已经做到了:
public void findCustomersInArea(int x)
{
// create a list to store all Customers
List<gymMember> aMember = new ArrayList<gymMember>();
// iterate all entries in the map
for (Map.Entry<String, gymMember> a: gymMembers.entrySet())
{
// get the customer
gymMember newMember = a.getArea();
if (newMember.getArea() == x) {
// do what you need to add to a list
newMember.add(newCustomer);
}
}
}
public void findCustomersInArea(int x)
{
//创建一个列表来存储所有客户
List aMember=new ArrayList();
//迭代映射中的所有条目
对于(Map.Entry a:gymMembers.entrySet())
{
//抓住顾客
gymMember newMember=a.getArea();
if(newMember.getArea()==x){
//执行需要添加到列表中的操作
newMember.add(newCustomer);
}
}
}
有人知道我哪里出错了吗?在迭代
映射时,而不是gymMember newMember=a.getArea()代码>您应该执行以下操作:
gymMember newMember = a.getValue ();
if (newMember.getArea() == x) {
// do what you need to add to a list
aMember.add(newMember);
}
gymember newMember=a.getValue()代码>以下是您的代码:
for (Map.Entry<String, gymMember> a : gymMembers.entrySet()) {
// get the customer
gymMember newMember = a.getValue();
if (newMember.getArea() == x) {
// do what you need to add to a list
aMember.add(newCustomer);//The name of your list is aMember and not newMember
}
}
在遍历Map
时,而不是gymember newMember=a.getArea()代码>您应该执行以下操作:
gymember newMember=a.getValue()代码>以下是您的代码:
for (Map.Entry<String, gymMember> a : gymMembers.entrySet()) {
// get the customer
gymMember newMember = a.getValue();
if (newMember.getArea() == x) {
// do what you need to add to a list
aMember.add(newCustomer);//The name of your list is aMember and not newMember
}
}
你应该准确地描述问题是什么。另外,我强烈建议您以大写字母(GymMember)开头命名类,因为带小写字母的名称用于变量(gymMembers)。问题是代码目前没有编译,我非常不确定这是否是获得所需结果的正确方法。非常感谢:)我看到的一个问题是a.getArea()
。Map.Entry
类有两个getter:getKey()
和getValue()
。我想你的意思是a.getValue()
。此外,一旦你建立了成员列表,你需要以某种方式返回它。你应该准确地描述问题是什么。另外,我强烈建议您以大写字母(GymMember)开头命名类,因为带小写字母的名称用于变量(gymMembers)。问题是代码目前没有编译,我非常不确定这是否是获得所需结果的正确方法。非常感谢:)我看到的一个问题是a.getArea()
。Map.Entry
类有两个getter:getKey()
和getValue()
。我想你的意思是a.getValue()
。另外,一旦您构建了aMember
列表,您需要以某种方式返回它(g.getArea…
是的,这是正确的。我只是将它概括为一个对象,只是为了表明概念。这就是我为什么要发表评论的原因。将它编辑为gymMember
。…这应该是for(gymMember g:gymMember.values()){if(g.getArea…
是的,这是正确的。我只是将它概括为一个对象,只是为了表明概念。这就是我为什么要发表评论的原因。将它编辑为gymMember
。)。。。。