首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >赋值LinkedHashMap多维

赋值LinkedHashMap多维
EN

Stack Overflow用户
提问于 2014-01-27 19:06:54
回答 2查看 681关注 0票数 0

我的结构如下:

代码语言:javascript
复制
import java.util.LinkedHashMap;
...
LinkedHashMap <String, Object>level0 = new LinkedHashMap<String, Object>();
LinkedHashMap <String, Object>level1 = new LinkedHashMap<String, Object>();
LinkedHashMap <String, Object>level2 = new LinkedHashMap<String, Object>();
LinkedHashMap <String, Object>level3 = new LinkedHashMap<String, Object>();

level1.put("level2", level2);
level2.put("level2", level3);

level0.put("level1", level1);

System.out.println(level0);

产出如下:

代码语言:javascript
复制
{
    level1={
        level2={}
    }
}

我需要通过“路径”(或其他什么)设置一个值,如下所示:

代码语言:javascript
复制
MapThisObject example = new MapThisObject(level0);
example.putValue("level1.level2", "string", "test");
example.putValue("level1.level2", "int", 1);
example.putValue("level1.level2", "object", new LinkedHashMap());

System.out.println(example.result());
/*output:
{
    level1={
        level2={
            string="test",
            int=1,
            Object={}
        }
    }
}
*/

换句话说,可以通过“路径”(如Xpath)为“多维对象”设置或设置​​值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-27 19:33:07

一个简单的例子

代码语言:javascript
复制
public static void set(Map<String, Object> map, String path, Object value) {
    String[] parts = path.split("\\.");
    for(int i = 0; i < parts.length-1 ; i++) {
        String key = parts[i];
        Map<String, Object> map2 = (Map<String, Object>) map.get(key);
        if (map2 == null) {
            map.put(key, map2 = new LinkedHashMap<String, Object>());
        }
        map = map2;
    }
    map.put(parts[parts.length - 1], value);
}

set(example, "level1.level2.string", "test");
set(example, "level1.level2.int", 1);
票数 2
EN

Stack Overflow用户

发布于 2014-01-27 19:25:57

根据您所描述的,听起来您所需要的只是一张包含地图的地图,它嵌套在您试图从中选择的多个轴上。

当然,另一种选择是建立你自己的树结构。或者将其表示为XML树,这将允许您使用标准XPath。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21389474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档