Основной вопрос о передаче ссылок HashMaps - PullRequest
1 голос
/ 24 октября 2010

Я определил HashMap, который использует ключ двойного типа и другой HashMap в качестве значения, как показано

HashMap<Double, HashMap<Double, String>> HM1 = new HashMap<Double, HashMap<Double, String>>();

Теперь для каждой записи этого HashMap у меня есть ссылка на другой HashMap; имя которого получено из значения ключа этой записи в этой HashMap. Например: Если мое значение ключа в HM1 равно 8, тогда имя HashMap будет упоминаться в «Alpha8». Если значение ключа в HM1 равно 6, тогда имя HashMap будет ссылаться в «Alpha6». Поэтому мой синтаксис при добавлении их в HashMap HM1 - HM1.put (8, Alpha8); и HM1.put (6, Alpha6);

Моя проблема:

Значения клавиш предварительно определены, которые я читаю из текстового файла. Следовательно, я открываю файл, пишу объект сканера для выбора каждого значения и помещаю его в переменную двойного типа keyvalue . Однако, чтобы получить значение для этого ключа, я определил строку s1 = "Alpha" + keyvalue.toString ();

Моя главная проблема - как передать эту строку в мою функцию put. Потому что, если я скажу HM1.put (keyvalue, s1); это эквивалент передачи двойного ключа и строкового значения, а не двойного ключа и ссылки на другой HashMap. Для примитивных типов данных вы можете обернуться, но для ссылки на HashMap я не уверен, как это сделать.

1 Ответ

0 голосов
/ 24 октября 2010

Предполагая, что у вас есть все возможные ссылки Alpha *, доступные вам ... Я просто изложу эту логику в простом условии if и сделаю вот так

if(keyvalue == 1) 
{
HM1.put(keyvalue, Alpha1)
} 
else(keyvalue == 2)
{

}
--
...