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: