Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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 变换哈希映射_Java - Fatal编程技术网

Java 变换哈希映射

Java 变换哈希映射,java,Java,我有一个Map变量。 举例来说: {user0, {Item1, 2.5, Item2, 3.5}} {user1, {Item1, 3.0, Item2, 2.0}} 我希望获得以下输出: {Item1, {user0, 2.5, user1, 3.0}} {Item2, {user0, 3.5, user2, 2.0}} 为此,我编写了以下代码: for(Map.Entry<String, Map<String, Double>> entry : user

我有一个
Map
变量。
举例来说:

{user0, {Item1, 2.5, Item2, 3.5}}  
{user1, {Item1, 3.0, Item2, 2.0}}
我希望获得以下输出:

{Item1, {user0, 2.5, user1, 3.0}}  
{Item2, {user0, 3.5, user2, 2.0}}
为此,我编写了以下代码:

for(Map.Entry<String, Map<String, Double>> entry : usersMap.entrySet()){
    for(Map.Entry<String, Double> ent : entry.getValue().entrySet()){
        people.put(entry.getKey(), ent.getValue());
        transform.put(ent.getKey(), people);
    }
}
你能在这里给我一些帮助吗?

试试
transform.get(ent.getKey()).put(entry.getKey(),ent.getValue())

您还需要处理
NullPointerException

尝试
transform.get(ent.getKey()).put(entry.getKey(),ent.getValue())


您还需要处理
NullPointerException

在我看来,您只为您的人员地图添加了1个值。试试这个:

for(Map.Entry<String, Map<String, Double>> entry : usersMap.entrySet()){
    for(Map.Entry<String, Double> ent : entry.getValue().entrySet()){
        people.put(entry.getKey(), ent.getValue());
    }
    transform.put(ent.getKey(), people);
}
for(Map.Entry:usersMap.entrySet()){
对于(Map.Entry-ent:Entry.getValue().entrySet()){
people.put(entry.getKey(),ent.getValue());
}
transform.put(ent.getKey(),people);
}

在我看来,您只为您的人员地图添加了1个值。试试这个:

for(Map.Entry<String, Map<String, Double>> entry : usersMap.entrySet()){
    for(Map.Entry<String, Double> ent : entry.getValue().entrySet()){
        people.put(entry.getKey(), ent.getValue());
    }
    transform.put(ent.getKey(), people);
}
for(Map.Entry:usersMap.entrySet()){
对于(Map.Entry-ent:Entry.getValue().entrySet()){
people.put(entry.getKey(),ent.getValue());
}
transform.put(ent.getKey(),people);
}

您必须为每个项目创建一个新地图

for(Map.Entry<String, Map<String, Double>> entry : usersMap.entrySet()){
    for(Map.Entry<String, Double> ent : entry.getValue().entrySet()){
        Map<String, Double> people = transform.get(ent.getKey());
        if (people == null) {
            people = new HashMap<>();
            transform.put(ent.getKey(), people);
        }
        people.put(entry.getKey(), ent.getValue());
    }
}

说真的,我花了好几次努力才把代码弄对,因为名字很混乱。但是现在应该是正确的了

您必须为每个项目创建一个新地图

for(Map.Entry<String, Map<String, Double>> entry : usersMap.entrySet()){
    for(Map.Entry<String, Double> ent : entry.getValue().entrySet()){
        Map<String, Double> people = transform.get(ent.getKey());
        if (people == null) {
            people = new HashMap<>();
            transform.put(ent.getKey(), people);
        }
        people.put(entry.getKey(), ent.getValue());
    }
}
说真的,我花了好几次努力才把代码弄对,因为名字很混乱。但是现在应该是正确的

您在哪里(以及如何)定义
变量?您在哪里(以及如何)定义
变量?