为了账号安全,请及时绑定邮箱和手机立即绑定

获取多级linkedhashmap的值

获取多级linkedhashmap的值

精慕HU 2021-08-19 17:47:43
我有一个链接哈希图,它具有字符串值和其他一些链接哈希图的集合。我需要获取所有值。这是我的代码: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 对象:
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

如果您需要存储多级地图,则需要将地图定义为<String, Object>,然后您需要查询值的类型以获取它


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

Map<String, Object> subMap = new HashMap<>();

subMap.put("SchemaVersion", "1.0");  // storing String value

lhm.put("my-map", subMap);  // storing Map value


// retrieval: need to query actual type of value

Object value = lhm.get("my-map");

if (value instanceOf String) {

   String strValue = (String)value;

   // process String value

} else {

   Map mapValue = (Map)value;

   // process Map value

}

但正如您所见,这很麻烦,而且容易出错。像 aTree这样的分层数据结构会好得多。


查看完整回答
反对 回复 2021-08-19
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

我需要将各个值分配给变量

然后就这样做:

String varA = lhm.get("key A");
String varB = lhm.get("key B");

基本上,这是在 Java 中将值提取到变量中的唯一方法。你得get()一一给他们。

请注意:您的代码将映射声明为Map<String, String>,此处没有嵌套,键和值都是字符串。鉴于您当前的输入,除了简单之外别无他法get()


查看完整回答
反对 回复 2021-08-19
?
RISEBY

TA贡献1856条经验 获得超5个赞

查看您的输出,您的 HasMap 似乎具有 JSON 对象字符串。

为了提取 JSON 对象的值,您可以使用任何可用的 JSON 实用程序并将值解析为可以访问其属性和值的对象。

我希望这将有所帮助。


查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信