如何在Java中使用HashMaps将名称与组织中的成员身份进行匹配?
这就是我的困境。我不知道从哪里开始。假设我得到了一份属于多个组织的人员列表,如下所示:如何在Java中使用HashMaps将名称与组织中的成员身份进行匹配?,java,hashmap,hashset,sorted,Java,Hashmap,Hashset,Sorted,这就是我的困境。我不知道从哪里开始。假设我得到了一份属于多个组织的人员列表,如下所示: John NAACP PETA NRA Bill NRA WHO Nancy NAACP NRA WHO Jim PETA WHO 但我想在其中放入另一个文件,该文件包含所有可能的组织的列表,然后输出类似的内容(组织按字母顺序排列,成员也按字母顺序排列,如果组织中没有人,则组织旁边没有名字): 我是HashMaps新手,我不知道如何去做,所以我非常感谢能得到的所有帮助。试试类似于HashMap的东西。将每个
John NAACP PETA NRA
Bill NRA WHO
Nancy NAACP NRA WHO
Jim PETA WHO
但我想在其中放入另一个文件,该文件包含所有可能的组织的列表,然后输出类似的内容(组织按字母顺序排列,成员也按字母顺序排列,如果组织中没有人,则组织旁边没有名字):
我是HashMaps新手,我不知道如何去做,所以我非常感谢能得到的所有帮助。试试类似于
HashMap的东西。将每个组织名称作为字符串键插入,并带有空的ArrayList
。然后在人员=>组织列表上循环,逐个查找组织,并在该组织的ArrayList
中插入人员姓名。这不是最优雅的解决方案,但它会起作用
要将人员添加到列表中,可以使用以下代码:
Map<String, List<String>> storage = new
LinkedHashMap<String,List<String>>();
if(!storage.containsKey("NRA")){
storage.put("NRA", new ArrayList<String>());
}
storage.get("NRA").add("Bill");
storage.get("NRA").add("John Nancy");
for(Entry<String, List<String>> entry : storage.entrySet()){
String line = entry.getKey(); //getting company name
for(String name : entry.getValue()){ //extracting name from an array
line += " ";
line += name;
}
System.out.println(line); //printing the result
}
Map存储=新建
LinkedHashMap();
如果(!storage.containsKey(“NRA”)){
storage.put(“NRA”,新的ArrayList());
}
存储。获取(“NRA”)。添加(“账单”);
存储。获取(“NRA”)。添加(“John Nancy”);
要提取和打印人员,可以使用以下代码:
Map<String, List<String>> storage = new
LinkedHashMap<String,List<String>>();
if(!storage.containsKey("NRA")){
storage.put("NRA", new ArrayList<String>());
}
storage.get("NRA").add("Bill");
storage.get("NRA").add("John Nancy");
for(Entry<String, List<String>> entry : storage.entrySet()){
String line = entry.getKey(); //getting company name
for(String name : entry.getValue()){ //extracting name from an array
line += " ";
line += name;
}
System.out.println(line); //printing the result
}
for(条目:storage.entrySet()){
String line=entry.getKey();//获取公司名称
对于(字符串名称:entry.getValue()){//从数组中提取名称
行+=“”;
行+=名称;
}
System.out.println(行);//打印结果
}
我没有在IDE中检查这段代码,但除了可能的打字错误,它可以工作。为每个组织创建一个HashMap,例如,HashMapMemberOfNACP=newHashMap()代码>。当您在成员中循环并找到NAACP成员时,运行memberOfNACP.put(“John”,true)
。完成后,使用memberOfNacp.keySet()
转储散列的内容。如果您事先不了解所有组织,请使用HashMap
s的ArrayList
,键入ArrayList
阅读此帖子,然后查看帖子历史记录,这表明您只是使用此网站让人们为您做功课。请不要那样做。试着自己做作业,真正学到一些东西。学习一些东西比获得好成绩更有价值。本打算添加代码示例,但la@JustinL自己试试看!我真的不知道你可以把ArrayList作为HashMap的值放进去,谢谢你的信息!