static Map<Integer,HashMap<String,HashMap<String,String>>> maps = new HashMap<Integer, HashMap<String,HashMap<String,String>>>();
Chcę wstawić elementy wewnątrz zadeklarowanej wyżej HashMap, a wewnętrzna większość ma gotowe wartości, z których mogę korzystać, teraz używam tego jak,
static Map<String,String> values = new HashMap<String, String>();
maps.put(1, new HashMap<<new String("")>, values>());
Jak mogę to osiągnąć?
Odpowiedzi:
3 dla odpowiedzi № 1static Map<String,String> values1 = new HashMap<String,String>();
static Map<String,Map<String,String>> values2 = new HashMap<String,Map<String,String>>();
values2.put("", values1);
maps.put(1,values2);
btw, jeśli masz java 7, możesz użyć:
Map<String,String> values1 = new HashMap<>();
i tak dalej dla innych
1 dla odpowiedzi nr 2
Jeśli masz mapę wewnątrz mapy (na mapie), rozważ użycie Apache MultiKeyMap.
- Kodowanie będzie bardziej intuicyjne
- Poprawi to czytelność twojego kodu
- To zapobiegnie wielu
if(map.get(key) != null)
bloki, które prawdopodobnie będziesz mieć w swoim kodzie.
0 dla odpowiedzi № 3
Dlaczego nie mieć instancji HashMap. Kiedy chcesz wstawić nową wartość, musisz mieć wartość Integer, String, String i String. Ciągle wybierasz zagnieżdżone HashMaps według kluczy, a następnie wstaw wartość do najbardziej wewnętrznej HashMap.
map.get(key1).get(key2).insert(key3, value)