【问题标题】:How to retrieve an element inside a Map<> in Java?如何在 Java 中检索 Map<> 中的元素?
【发布时间】:2020-08-13 05:54:02
【问题描述】:

我有这张地图(不要介意名称,因为它们是通用的):

Map&lt;Enum, List&lt;anObject&gt;&gt; map;

它给了我一个像这样的嵌套 Json:

"map": {
        "ENUM1": [{
          "string1" : "Something written here",
          "check" : true,
          "string2" : "Something written here",
        }],
        "ENUM2": [{
          "string1" : "Something written here",
          "check" : true,
          "string2" : "Something written here",

        }]
     }

如何从第一个 Enum 对象 ENUM1 中获取“string1”以将其保存到变量中?

也许这是一个愚蠢的问题,但我在网站上没有找到类似的东西。 谢谢!

【问题讨论】:

  • "string1" 似乎是列表中 anObject 内的 a key。不可能只得到"string1",因为没有办法将它与"string2" 区分开来,"string2" 只是同一对象中的另一个键,键没有顺序。您的示例太宽泛,无法帮助您。
  • String value = map.get(Enum.ENUM1).get(0).getString1()
  • Java 中的 Map 不返回 JSON,而是返回 Java 对象。

标签: java list dictionary hashmap


【解决方案1】:

您在地图上的 ENUM 值看起来像是另一张地图。所以我这样说

Map<Enum, Map<String, Object>>

但是,问题不清楚!这是一种可能的解决方案。

import java.util.*;    
public class Main {

    public static void main(String[] args) {

        Map<Enum, Map<String, Object>> map = new HashMap<>();
        Map<String, Object> value = new HashMap<>();
        value.put("String1", "Something written here");
        value.put("check", true);
        value.put("String2", "Something written here");
        map.put(Enum.ENUM1, value);
        value = new HashMap<>();
        value.put("String1", "Something written here");
        value.put("check", true);
        value.put("String2", "Something written here");
        map.put(Enum.ENUM2, value);

        //string1 Object always will be String
        String result;
        for (Map.Entry<String,Object> entry :  map.get(Enum.ENUM1).entrySet()) {
            if (entry.getKey().equals("string1")) {
                result = entry.getValue().toString();
            }
        }

    }
}

enum Enum {
    ENUM1,
    ENUM2
}

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多