Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap-搜索对象的值并添加到列表_Java_Hashmap - Fatal编程技术网

Java HashMap-搜索对象的值并添加到列表

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对象返回到一个新集合 到目前为止,我已经做

我有两个班:健身房和健身房会员。当前Gym将所有gymMember存储在一个HashMap gymMembers中,其中String是他们的成员ID(String)

成员持有以下变量:

  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
。)。。。。