获取多级linkedhashmap的值

我有一个链接哈希图,它具有字符串值和其他一些链接哈希图的集合。


我需要获取所有值。


这是我的代码:


HashMap<String, String> lhm =  new HashMap<String, String>();

//********Code to assign lhm *******


System.out.println("LHM="+lhm.values());

输出:


LHM=[{SchemaVersion=1.0, AgentVersion=3.0.1.31, ServiceTag=XXXX, Model=Latitude E7240, Registered=true, OSVersion=10.0.14393, SPVersion=0, UTCDate=2018-08-28T17:38:57.5935378Z, BIOSVersion=A25, Status=Informational, Description=No Failures detected; High Memory Usage; High CPU Usage}, {LocalDate=2018-08-28T23:08:57.6080352+05:30, LastBootUpDate=2018-08-28T23:05:36.48659, WindowsUpdatedRunDate=0001-01-01T00:00:00, ApplicationCrashesLast24hrs=0, SystemDriveFreeSpace=202.30 GB, HighMemUsage=82.8125, HighCPUUsage=100}, XXXXXX$$2313213132132131233]

调试模式下的 LHM 对象:

http://img2.mukewang.com/611e28d40001819208690278.jpg

精慕HU
浏览 286回答 3
3回答

扬帆大鱼

如果您需要存储多级地图,则需要将地图定义为<String, Object>,然后您需要查询值的类型以获取它Map<String, Object> lhm = new HashMap<>();Map<String, Object> subMap = new HashMap<>();subMap.put("SchemaVersion", "1.0");&nbsp; // storing String valuelhm.put("my-map", subMap);&nbsp; // storing Map value// retrieval: need to query actual type of valueObject value = lhm.get("my-map");if (value instanceOf String) {&nbsp; &nbsp;String strValue = (String)value;&nbsp; &nbsp;// process String value} else {&nbsp; &nbsp;Map mapValue = (Map)value;&nbsp; &nbsp;// process Map value}但正如您所见,这很麻烦,而且容易出错。像 aTree这样的分层数据结构会好得多。

吃鸡游戏

我需要将各个值分配给变量然后就这样做:String&nbsp;varA&nbsp;=&nbsp;lhm.get("key&nbsp;A"); String&nbsp;varB&nbsp;=&nbsp;lhm.get("key&nbsp;B");基本上,这是在 Java 中将值提取到变量中的唯一方法。你得get()一一给他们。请注意:您的代码将映射声明为Map<String, String>,此处没有嵌套,键和值都是字符串。鉴于您当前的输入,除了简单之外别无他法get()。

RISEBY

查看您的输出,您的 HasMap 似乎具有 JSON 对象字符串。为了提取 JSON 对象的值,您可以使用任何可用的 JSON 实用程序并将值解析为可以访问其属性和值的对象。我希望这将有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java