Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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中使用HashMaps将名称与组织中的成员身份进行匹配?_Java_Hashmap_Hashset_Sorted - Fatal编程技术网

如何在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的值放进去,谢谢你的信息!