1

我有一段代码,基本上如下:

long[]   ids;
long[][] values;

这些值是按顺序填写的,即 if ids = ['id1','id2',...] 这些值可能是
values = [['id2val1','id2val2',..]['id1val1','id2val2',...],..]
无法避免不按顺序执行的,我正在考虑的方法是使用 Map Map<Long,Long[]>
但由于 java 的自动装箱,不可能使用 JAVA 泛型。

我想知道它是否可以通过一些使用原语的优化数据结构库来完成,
以避免不必要的自动装箱,我正在寻找像Koloboke&之类的库Fastutil
寻找数据结构推荐

4

1 回答 1

2

虽然您必须使用 boxedLong作为映射键,但您不需要将原语装箱在值数组中。您可以使用Map<Long,long[]>而不是Map<Long,Long[]>. 这应该可以缓解您对性能的大部分担忧。

因此,在您开始引入第三方库之前,请先看看简单HashMap<Long,long[]>是否足以满足您的目的。

于 2020-12-28T22:57:10.907 回答