Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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中带有long as键的映射_Java_Hashmap_Maps_Long Integer - Fatal编程技术网

Java中带有long as键的映射

Java中带有long as键的映射,java,hashmap,maps,long-integer,Java,Hashmap,Maps,Long Integer,我的分析器指出,我花了很大一部分时间将long包装成long,这是我想要避免的。我现在这样做是因为我使用Map。有没有一种常用的方法来创建键长的贴图 我知道它不会是Map,因为类型系统不允许它,但这并不意味着从long到V的映射不存在。实际上,这很容易做到,因为我只需要复制HashMap的代码,用long替换K,并执行类型系统所需的所有更改(例如,键上的迭代不再是迭代器) 我的问题是这样一个图书馆已经存在,还是我应该自己去做 上下文是,我的探查器声明,在执行批处理时,三分之一的时间用于将long

我的分析器指出,我花了很大一部分时间将
long
包装成
long
,这是我想要避免的。我现在这样做是因为我使用
Map
。有没有一种常用的方法来创建键长的贴图

我知道它不会是
Map
,因为类型系统不允许它,但这并不意味着从
long
V
的映射不存在。实际上,这很容易做到,因为我只需要复制
HashMap
的代码,用
long
替换
K
,并执行类型系统所需的所有更改(例如,键上的迭代不再是
迭代器

我的问题是这样一个图书馆已经存在,还是我应该自己去做

上下文是,我的探查器声明,在执行批处理时,三分之一的时间用于将
long
转换为
long
,实际上没有理由接受为类型系统支付此价格,因为这是不受支持的。您也不能创建具有基元类型的类(如
HashMap

也许政府将来会设法解决这个问题

建议:

  • 您能否首先将代码的其余部分更改为使用
    Long
  • Long类缓存从-127到128()的值。探索是否可以在更大范围内使用类似的内部缓存

  • 库的类是否正是我在这里要求的

    试试看原始Long的包装器类我的观点是,包装需要时间,而且根据分析器,在这里包装的成本是无用的。这就是为什么我首先要避免它