/ / Jak tworzyć i przesuwać elementy dynamiczne w HashMap - java, hashmap

Jak tworzyć i przesuwać elementy dynamiczne w HashMap - java, hashmap

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 № 1
static 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)