HashMap, вероятно, гораздо менее неэффективен, чем вы думаете, попробуйте.В противном случае, я не могу придумать способа сделать это более элегантно, чем зацикливание и заполнение нулем.Если вы хотите, по крайней мере, элегантность изложения, вы всегда можете создать подкласс ArrayList и добавить метод expandingSet (position, value), чтобы скрыть все циклы и тому подобное, или что-то еще.Возможно, это не вариант, хотя?Если бы не просто использовать метод утилиты где-то еще для него, но это не так хорошо, imho, хотя он будет работать и с другими типами списков, я думаю ...
Возможно, класс-обертка будет лучшимиз обоих миров, или, возможно, это просто повлечет за собой ненужные накладные расходы ...