Вы получаете что-то похожее на 2-х мерный HashMap, так сказать.Это означает, что вам нужно 2 String для хранения значения, а также для его получения.
Вы можете, например, написать класс, чтобы обернуть эту сложность, как этот (непроверенный код):
public class HashMap2D<T> {
private HashMap<String,HashMap<String,T>> outerMap;
public HashMap2D() {
outerMap = new HashMap<String,HashMap<String,T>>();
}
public void addElement(String key1, String key2, T value) {
innerMap=outerMap.get(key1);
if (innerMap==null) {
innerMap = new HashMap<String,T>();
outerMap.put(key1,innerMap);
}
innerMap.put(key2,value);
}
public T getElement(String key1, String key2) {
Hashmap innerMap = outerMap.get(key1);
if (innerMap==null) {
return null;
}
return innerMap.get(key2);
}
}
Если вы хотите, чтобы методы обрабатывали несколько данных одновременно, это более сложно, но следует тем же принципам.