Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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_Object_Dictionary_Hashmap - Fatal编程技术网

Java HashMap一个键和多个值,而不知道您得到了什么值

Java HashMap一个键和多个值,而不知道您得到了什么值,java,object,dictionary,hashmap,Java,Object,Dictionary,Hashmap,好的,我查找了一些关于我的问题的线程,但在他们使用的每个解决方案中(至少在大多数情况下)都有如下内容: Map<Key, ArrayList<Value>> myMap = new HashMap...; //this Map is an attribute of my first Object so the Key is the second Object and my ArrayList is the relation 所以我也不能把关系和地图上的第二个对象相

好的,我查找了一些关于我的问题的线程,但在他们使用的每个解决方案中(至少在大多数情况下)都有如下内容:

Map<Key, ArrayList<Value>> myMap = new HashMap...;
//this Map is an attribute of my first Object so the Key is the second 
  Object and my ArrayList is the relation
所以我也不能把关系和地图上的第二个对象相加

希望你能理解我的问题。(非母语人士)


提前感谢

检查您的地图中是否已存在该键,如果已存在,只需添加与该键的关系即可:

if map.containsKey(key)
{
   map.get(key).add(relation);
} else
{
   List<Object> rel = new ArrayList<Object>();
   rel.add(relation);
   map.put(key, rel);
}
if map.containsKey(键)
{
map.get(键)、add(关系);
}否则
{
List rel=new ArrayList();
相对添加(关系);
地图放置(键,rel);
}
更新:要打印,请使用:

for (Map.Entry<String, List<Object>> entry : map.entrySet())
        {
            String key = entry.getKey();
            List<Object> values = entry.getValue();
            for (Object value : values)
            {
                System.out.println(key + "=" + value);
            }
        }
for(Map.Entry:Map.entrySet())
{
String key=entry.getKey();
列表值=entry.getValue();
用于(对象值:值)
{
System.out.println(键+“=”+值);
}
}

如果没有什么可以阻止您,那么我会考虑使用已经编写好的多映射实现。你需要这样的东西


然而,如果出于某种原因,您不能只导入一个,那么上述方法是好的

听起来你可能需要一张地图来记录关系。ie字符串键到字符串值的映射听起来像是想要一个
map
,其中
RelationAndValue
是您创建的用来保存关系和值的类。您也可以尝试映射。其中第一个字符串是STRING1,第二个字符串是RELATION,第三个字符串是STRING2。如果有比Map更多的具有相同关系的字符串。我测试了这个方法,但遗憾的是,我仍然没有得到所有的关系。。它仍将仅打印添加的最新关系。即使我迭代包含所有关系的列表,它也不起作用。。有什么想法吗?编辑:即使现在选中了在终端上打印列表字符串,仍然只有一个saved@NhatNienne添加了打印方法。谢谢,但我对你的方法的问题仍然是,第一种方法(不是打印方法)理论上应该有效,但它没有。它仍然没有添加列表中的所有关系。我不知道为什么,但它会覆盖它们。有没有办法私下告诉你?让我们。
for (Map.Entry<String, List<Object>> entry : map.entrySet())
        {
            String key = entry.getKey();
            List<Object> values = entry.getValue();
            for (Object value : values)
            {
                System.out.println(key + "=" + value);
            }
        }