Если я правильно вас понимаю, «внутренняя карта» (с типом Map<Integer, String>
) всегда будет придерживаться следующего правила:
Ключи карты всегда будут охватывать закрытый диапазон от 0 к его размеру. Например, внутренняя карта размером 8 будет иметь в качестве ключей: `[0, 1, 2, 3, 4, 5, 6, 7].
Если я правильно проанализировал ваш вопрос, вы ... . составил список . Семантически говоря, список IS : вещь, которая 'отображает' закрытый диапазон целых чисел, начиная с 0 до значений. Чтобы прочитать из этой «карты» значение, связанное с «ключом» 5, просто позвоните list.get(5)
. Чтобы «добавить» элемент в конце, вы просто звоните list.add(x)
вместо map.put(???, x)
.
Таким образом, ответ так же тривиален, как: Замените Map<Integer, String>
на List<String>
, замените (a)->new HashMap<>()
с a->new ArrayList<>()
и замените .put(/*my problem*/,
на .add(
.
Если вы должны сделать это с картами, вы не сможете сделать это с помощью хэш-карт, если не попытаетесь использовать map.size () в качестве fr agile standin, что я настоятельно советую вам не делать (поскольку это подразумевает, что ваша карта работает только в тех случаях, когда список будет лучше, что доказывает, что решение карты хуже) - хеш-карты не имеют порядка и, следовательно, нет Идея «что является последним / самым высоким ключом». Вместо этого вы можете использовать TreeMap, который имеет такие понятия. Вы можете спросить его о самом высоком ключе, а затем использовать 1 выше этого значения.
Но я почти уверен, что вы просто хотите получить список здесь.