Что вам нужно, так это карта карт.
Map<String, Map<Integer,Double>> map = new HashMap<>();
Затем вы можете просто указать значение String, которое является истинным.
Примеры:
Map<String, Map<Integer,Double>> map = new HashMap<>();
Следующее:
Map.computeIfAbsent(Key, (a)->new HashMap<>()).put(i, d);
Ведет себя так же, как
Map<Integer,Double> innerMap = map.get(Key);
if (innerMap == null) {
innerMap = new HashMap<>();
map.put(Key, innerMap)
}
innerMap.put(i, d);
Назначение некоторых значений
map.computeIfAbsent("A", (a)->new HashMap<>()).put(10,20.56);
map.computeIfAbsent("A", (a)->new HashMap<>()).put(20,4.2);
map.computeIfAbsent("A", (a)->new HashMap<>()).put(30,10.6);
map.computeIfAbsent("B", (a)->new HashMap<>()).put(1,2.);
map.computeIfAbsent("B", (a)->new HashMap<>()).put(2,2.44);
map.computeIfAbsent("B", (a)->new HashMap<>()).put(10,2.45);
map.computeIfAbsent("C", (a)->new HashMap<>()).put(30,3.2);
Печать всех значений
map.entrySet().forEach(System.out::println);
Чтобы получить спецификацию c Значение
double d = map.get("A").get(10); // gets 20.56 from Map "A"
System.out.println(d);
Если вы уже знаете, что внутренняя карта связана с ключом, вы можете просто сделать следующее:
// gets the map at "C"
// and puts 44.7 at key 44
map.get("C").put(44,44.7);