HashMap в HashMap

Обновлено:-

Постановка проблемы

Мне нужно хранить эти вещи

For ID corresponding to 1, I need to Store these things

 - Key CGUID(String CGUID) and its Value, Key SGUID(String SGUID) and its Value, Key PGUID(String PGUID) and its Value, Key UID(String UID) and its Value, Key ALOC(String ALOC) and its Value

For ID corresponding to 2, I need to Store these things

- Key CGUID(String CGUID) and its Value, Key SGUID(String SGUID) and its Value, Key PGUID(String PGUID) and its Value, Key UID(String UID) and its Value, Key ALOC(String ALOC) and its Value

For ID corresponding to 3, I need to Store these things

- Key CGUID(String CGUID) and its Value, Key SGUID(String SGUID) and its Value, Key PGUID(String PGUID) and its Value, Key UID(String UID) and its Value, Key ALOC(String ALOC) and its Value

Так что для этой проблемы я думал сделать структуру данных следующим образом:

public static LinkedHashMap<String, Integer> GUID_VALUES = new LinkedHashMap<String, Integer>();

public static LinkedHashMap<Integer, LinkedHashMap<String, Integer>> GUID_ID_MAPPING = new LinkedHashMap<Integer, LinkedHashMap<String, Integer>>();

Есть ли лучший способ сделать это?

3 ответа

Решение

В Java вы можете достичь этого, используя:

public class Data {
    public static LinkedHashMap<String, Integer> GUID_VALUES = new LinkedHashMap<String, Integer>();
    public static LinkedHashMap<Integer, Map<String, Integer>> GUID_ID_MAPPING = new LinkedHashMap<Integer, Map<String, Integer>>();

    static {
        Integer someNumber = 0; //or another value, its for initialize the key
        GUID_ID_MAPPING.put(someNumber,GUID_VALUES);
    }
}

Тем не менее, я не понимаю, зачем тебе это действительно нужно. Я предложу вам опубликовать ваши функциональные требования и постараться выбрать лучший дизайн для решения проблемы.

Не совсем понятно, что вы в конечном итоге пытаетесь сохранить.

Если вы просто хотите карту карт:

LinkedHashMap<Integer, LinkedHashMap<String, Integer>>

Но что это за "и т. Д. И т. Д." В конце? Есть ли несколько "дочерних" идентификаторов для каждого родительского идентификатора? Если это так, то вам, вероятно, нужно какое-то дерево (которое может быть реализовано с помощью карт, но абстракция над этим может показаться разумной).

Вы, вероятно, хотите карту с несколькими ключами, такую ​​как доступную в Apache Commons Collections:

http://commons.apache.org/collections/api-release/org/apache/commons/collections/map/MultiKeyMap.html

Другие вопросы по тегам