(There are some questions about time-efficient sparse arrays but I am looking for memory efficiency.)
I need the equivalent of a List<T> or Map<Integer,T> which
ArrayList<T> in the case that most of the indices are not null, i.e. when the actual data is not very sparse.null indices.HashMap<Integer,T> (as this autoboxes the keys and probably does not take advantage of the scalar key type).Does anyone know of such a utility class?
I would have expected Commons Collections to have one but it did not seem to.
I came across org.apache.commons.math.util.OpenIntToFieldHashMap which looks almost right except the value type is a FieldElement which seems gratuitous; I just want T extends Object. It looks like it would be easy to edit its source code to be more generic, though I would rather use a binary dependency if one is available.
I would try with trove collections, there is TIntObjectMap which can work for your intents.