Java 基于某些条件从映射中删除项目

Java 基于某些条件从映射中删除项目,java,maps,Java,Maps,我目前正在做一个关于java语言地图的大学项目 地图上有姓名、国籍和一些关于高尔夫球手的统计数据。我遇到的一个障碍是从南非撤走所有球员(共有2名) 有人知道在这种情况下我希望使用什么函数吗?我试过各种方法都没有用 谢谢你的帮助 添加编辑代码 这是我的主要方法 package assessmentmaps; import java.io.*; import java.util.*; public class AssessmentMaps { public static void main(Stri

我目前正在做一个关于java语言地图的大学项目

地图上有姓名、国籍和一些关于高尔夫球手的统计数据。我遇到的一个障碍是从南非撤走所有球员(共有2名)

有人知道在这种情况下我希望使用什么函数吗?我试过各种方法都没有用

谢谢你的帮助

添加编辑代码

这是我的主要方法

package assessmentmaps;
import java.io.*;
import java.util.*;
public class AssessmentMaps {
public static void main(String[] args) 
{
//Create a new map to store golfers and info

    Map<String, Golfer> gMap = new HashMap<String, Golfer>();

    try
    {
        //Declare new File, File Reader, and Buffered Reader
        File myFile = new File("Top 20 golfers.txt");
        FileReader fr = new FileReader(myFile);
        BufferedReader br = new BufferedReader(fr);
        String line = null;

        while((line = br.readLine())!=null)
        {
            //Tokenize the String
            StringTokenizer st = new StringTokenizer(line,",");
            //While there are tokens to be read, assign tokens to a new 
            //golfer. Create Hashcodes for each golfer and add to map.
            while(st.hasMoreTokens())
            {
                Golfer g = new Golfer(st.nextToken()
                                     ,st.nextToken()
                                     ,st.nextToken()
                                     ,st.nextToken());
                String key;
                key = Integer.toString(g.hashCode());
                gMap.put(key, g);
            }
        }

    }

    catch(IOException e)
    {
        //If the file cannot be found, display this message
        System.out.println("File not found");
    }


    //Task 7: Delete the players from RSA
    System.out.println("\nTask 7: Delete the players from RSA");



    for(Golfer g : values)
    {
        if(g.getCountry() == "RSA")
        {
            gMap.remove(g);
        }
    }

    System.out.println(gMap);

}
}

} 很难用提供的详细信息给出一个好的答案。

不过,我会尽力: 假设您拥有表单的映射:
Map golferMap=newhashmap()
在哪里

字符串(名称)是键和

ArrayList(关于高尔夫球手的其他统计信息)是值

<>你可以试试这样的东西(<强>注释:考虑这只是一个引用!< /强>):

//填充golferMap后
for(Iterator it=map.entrySet().Iterator();it.hasNext();)
{
Map.Entry=it.next();
如果(entry.getKey().national.equals(“南非”){
it.remove();
}
}               

发布您当前拥有的代码—不可能用如此少的细节智能地回答问题。请分享您已经拥有的代码,这样我们至少有一个共同的讨论基础。这将取决于您如何在地图中存储详细信息。发布你的代码
package assessmentmaps;
public class Golfer 
{
private String name;
private String country;
private String points;
private String events;

public Golfer(String name, String events, String points, String country)
{
    this.name = name;
    this.events = events;
    this.points = points;
    this.country = country;
}


public String getName() 
{
    return name;
}

public void setName(String name) 
{
    this.name = name;
}

public String getCountry() 
{
    return country;
}

public void setCountry(String country) 
{
    this.country = country;
}

public String getPoints() 
{
    return points;
}

public void setPoints(String points) 
{
    this.points = points;
}

public String getEvents() 
{
    return events;
}

public void setEvents(String events) 
{
    this.events = events;
}

@Override
public String toString()
{
    return name + " " + events +" " + " " + points + " " + country;
}

@Override
public boolean equals(Object obj)
{
    if (obj instanceof Golfer)
    {
        Golfer GolfPlayer = (Golfer)obj;
        if(name.equalsIgnoreCase(GolfPlayer.name))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
}

@Override
public int hashCode()
{
    String hashStr = this.events + Math.round(Double.parseDouble(points));
    int hash = Integer.parseInt(hashStr);
    return hash;
}
//after populating the golferMap
 for(Iterator<Map.Entry<String, ArrayList<String>>> it = map.entrySet().iterator(); it.hasNext();) 
{
          Map.Entry<String, ArrayList<String>> entry = it.next();
          if(entry.getKey().nationality.equals("South Africa")){              
              it.remove();
          }
 }