Сохранить объект карты внутри другой карты - PullRequest
0 голосов
/ 27 января 2012

У меня есть, например, эта карта:

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;

Можно ли сохранить этот объект на другой карте?

Привет

1 Ответ

1 голос
/ 27 января 2012

Вы смешиваете два вопроса.Не знаю, что вы спрашиваете:

  1. Можете ли вы перенести иерархическую карту через ObjectOutputStream?
  2. Как сопоставить карту с картой?

Если вы задаете вопрос 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 с удаленным пухом где-то еще.

...