如何在Java中使用HashMaps将名称与组织中的成员身份进行匹配?
这就是我的困境。我不知道从哪里开始。假设我得到了一份属于多个组织的人员列表,如下所示:
John NAACP PETA NRA
Bill NRA WHO
Nancy NAACP NRA WHO
Jim PETA WHO
但我想在另一个文件中列出所有可能的组织,然后输出这样的内容(组织按字母顺序排列,成员也按字母顺序排列,如果没有人在其中,则组织旁边没有名字):
NAACP John Nancy
NRA Bill John Nancy
PETA Jim John
WHO Bill Jim Nancy
YEO
我是HashMaps新手,我不知道该怎么做,所以我很感激能得到的所有帮助
# 1 楼答案
这不是最优雅的解决方案,但它会奏效
要将人员添加到列表中,可以使用以下代码:
要提取和打印人员,可以使用以下代码:
我没有在IDE中检查这段代码,但除了可能的打字错误,它会工作
# 2 楼答案
为每个组织创建一个HashMap,例如
HashMap<String,Boolean> memberOfNAACP = new HashMap<String,Boolean>();
。当你在成员之间循环,找到一个NAACP成员时,运行memberOfNAACP.put("John",true)
。完成后,用memberOfNAACP.keySet()
转储散列的内容。如果您事先不知道所有的组织,请使用ArrayList
的HashMap
,键入ArrayList<HashMap<String,Boolean>>
# 3 楼答案
试试像
HashMap<String, ArrayList<String>>
这样的东西。将每个组织名称作为带空ArrayList<String>
的字符串键插入。然后循环查看人员列表=>;组织,逐个查找组织,并在该组织的ArrayList
中插入此人的姓名