首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在hashMap中存储hashMap

在hashMap中存储hashMap
EN

Stack Overflow用户
提问于 2011-02-20 19:24:12
回答 5查看 83.4K关注 0票数 21

我正在从一个文本文件中读取数据,并希望将HashMap存储在另一个HashMap中。

代码语言:javascript
复制
HashMap<string,HashMap<string,value>>

如何存储和检索数据?任何示例代码都将不胜感激。谢谢你

EN

回答 5

Stack Overflow用户

发布于 2011-02-20 19:27:14

示例:

创建和填充地图

代码语言:javascript
复制
Map<String, Map<String, Value>> outerMap = new HashMap<String, HashMap<String, Value>>();
Map<String, Value> innerMap = new HashMap<String, Value>();    
innerMap.put("innerKey", new Value());

存储地图

代码语言:javascript
复制
outerMap.put("key", innerMap);

检索地图及其值

代码语言:javascript
复制
Map<String, Value> map = outerMap.get("key");
Value value = map.get("innerKey");
票数 40
EN

Stack Overflow用户

发布于 2011-02-20 20:48:13

创建两个简单的Hashmap: InnerMap和OuterMap

代码语言:javascript
复制
    HashMap<String, HashMap<String, String>> outerMap = new HashMap<String, HashMap<String,String>>();
    HashMap<String, String> innerMap = new HashMap<String, String>();

填充HashMaps

代码语言:javascript
复制
    innerMap.put("InnerKey", "InnerValue");
    outerMap.put("OuterKey", innerMap);

从HashMaps中检索值

代码语言:javascript
复制
    String value = ((HashMap<String, String>)outerMap.get("OuterKey")).get("InnerKey").toString();
    System.out.println("Retreived value is : " + value);
票数 6
EN

Stack Overflow用户

发布于 2011-02-20 20:38:04

可以这么说,你得到了一个看起来像二维HashMap的东西。这意味着你需要2个字符串来存储一个值,也需要检索一个值。

例如,你可以编写一个类来包装这种复杂性,就像这样(未测试的代码):

代码语言:javascript
复制
public class HashMap2D<T> {
    private HashMap<String,HashMap<String,T>> outerMap;

    public HashMap2D() {
        outerMap = new HashMap<String,HashMap<String,T>>();
    }

    public void addElement(String key1, String key2, T value) {
        innerMap=outerMap.get(key1);
        if (innerMap==null) {
            innerMap = new HashMap<String,T>();
            outerMap.put(key1,innerMap);
        }
        innerMap.put(key2,value);
    }

    public T getElement(String key1, String key2) {
        Hashmap innerMap = outerMap.get(key1);
        if (innerMap==null) {
            return null;
        }
        return innerMap.get(key2);
    }
}

如果您希望方法一次处理多个数据,则会更加复杂,但遵循相同的原则。

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

https://stackoverflow.com/questions/5056708

复制
相关文章

相似问题

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