将Map对象存储在另一个Map中

时间:2012-01-26 23:04:47

标签: java sockets map hashmap objectinputstream

我有这样的地图:

Map<String, Integer> map = new HashMap<String,Integer>();

比我提出一些值:

map.put("a", 2);
map.put("b", 3);

比我有这个类来序列化这个对象:

public class MapObject implements Serializable {

private static final long serialVersionUID = 1L;

Map<String, Integer> map = new HashMap<String, Integer>();

public MapObject(Map<String, Integer> map) {
    this.map = map;
}

}

我这样做是因为我正在使用套接字,我想使用ObjectInputStream和ObjectOutputStream将映射对象从客户端传递到服务器。

现在我想问的是我是否可以将这个Map对象存储在服务器中,例如

MapObject mo;

是否可以将此对象存储在另一个Map中?

此致

1 个答案:

答案 0 :(得分:1)

您将两个问题混合在一起。不知道你问的是什么:

  1. 您可以通过ObjectOutputStream传输分层地图吗?
  2. 如何将地图映射到地图?
  3. 如果你问问题2,你甚至不应该提到问题1,因为它会混淆问题。或者你问两个问题吗?

    回答问题2:

    Map<String, Map<?,?>> mapOfMap = new HashMap<String, Map<?,?>>();
    
    Map<String, Integer> mapA = new HashMap<String, Integer>();
    
    mapOfMap.put("a", mapA);
    

    回答问题1:

    当然。

    ...

    回答您的其他问题

    所有键及其迭代器的集合,

    Set<String> keys = mapOfMap.keySet();
    Iterator<String> iterator = keys.iterator();
    

    查看http://code.google.com/p/synthfuljava/source/browse/trunk/common/org/synthful/util/HashTreeNode.java

    查看地图地图可以做些什么的示例。

    那个树形哈希节点在2004年编写得很糟糕(并且需要删除像toStringBuffer一样的漏洞),但它足以说明一个xpath可寻址哈希树。我有另一个版本的GWT,并在其他地方删除了绒毛。