Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要一个优化的映射(k,v),例如(long,long[]),以避免自动装箱_Java_Generics_Autoboxing_Fastutil_Koloboke - Fatal编程技术网

Java 需要一个优化的映射(k,v),例如(long,long[]),以避免自动装箱

Java 需要一个优化的映射(k,v),例如(long,long[]),以避免自动装箱,java,generics,autoboxing,fastutil,koloboke,Java,Generics,Autoboxing,Fastutil,Koloboke,我有一段代码,基本如下: long[] ids; long[][] values; 这些值依次填写,即。 如果id=['id1','id2',…] 这些值可能是值=['id2val1'、'id2val2'、…]['id1val1'、'id2val2'、…]、…] 不按顺序执行无法避免,我正在考虑的方法是使用映射 映射,但由于java的自动装箱,无法使用java泛型。 我想知道是否可以通过一些使用原语的优化数据结构库来实现, 为了避免不必要的自动装箱,我正在研究库,如Koloboke&Fas

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

long[]   ids;
long[][] values;
这些值依次填写,即。
如果id=['id1','id2',…]
这些值可能是
值=['id2val1'、'id2val2'、…]['id1val1'、'id2val2'、…]、…]

不按顺序执行无法避免,我正在考虑的方法是使用映射
映射

但由于java的自动装箱,无法使用java泛型。

我想知道是否可以通过一些使用原语的优化数据结构库来实现,
为了避免不必要的自动装箱,我正在研究库,如
Koloboke
&
Fastutil


寻找数据结构建议

当您必须使用boxed
Long
作为映射键时,您不需要在值数组中装箱原语。您可以使用
Map
而不是
Map
。这应该可以缓解大多数性能问题


因此,在开始介绍第三方库之前,请先看看simple
HashMap
是否足以满足您的需要。

请提供一些代码来解释由于java的自动装箱,无法使用java泛型方法的原因。@AndrewS-当前代码存储时间序列数据。因此,
id[]
包含唯一标识符的列表。对于其中的每一个,都有一个关联的长数组。目前,它是通过两个单独的数组完成的,即id[],value[]。但是,现在结果可能会无序返回,因此需要一种方法来关联和访问id与值[]。如果使用
Map
完成此操作,则由于从长到长和反向取消装箱,需要更多的时间/处理。因此,需要优化的数据结构,这是否澄清了疑问?您是否知道需要优化此结构?i、 这是你的软件瓶颈吗?这些数据结构有多大?@StripedColossus-提供了内联答案,您知道您需要对此进行优化吗?是的,这需要尽可能优化。这是你的软件瓶颈吗?目前,这项技术尚未投入使用,但这是扩大规模努力的一部分。这肯定会被视为一个瓶颈——这些数据结构有多大?目前长[]个值的平均大小为[1000000][2000]