Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 长到整型比自动装箱长到整型便宜吗?_Java_Android_Casting_Autoboxing - Fatal编程技术网

Java 长到整型比自动装箱长到整型便宜吗?

Java 长到整型比自动装箱长到整型便宜吗?,java,android,casting,autoboxing,Java,Android,Casting,Autoboxing,我有一堆东西,我一直在用长长的ID号跟踪它们。因为我对ID序列没有任何保证,所以我将它们保存在一个HashMap中以供随机访问。然而,在安卓系统中,他们有一个非常好的类叫做HashMap,他们声称这个类比我的HashMap使用速度更快。也许最值得注意的是,它没有自动装箱税。不幸的是,键是int,不是长的 我的长ID的值是这样的,所以我不担心在本世纪的任何时候溢出int的范围。对于我的HashMap操作来说,从长到int再加上SparseArray优化的转换比从长到长的自动装箱要便宜吗?我的直觉是

我有一堆东西,我一直在用长长的ID号跟踪它们。因为我对ID序列没有任何保证,所以我将它们保存在一个HashMap中以供随机访问。然而,在安卓系统中,他们有一个非常好的类叫做HashMap,他们声称这个类比我的HashMap使用速度更快。也许最值得注意的是,它没有自动装箱税。不幸的是,键是int,不是长的

我的长ID的值是这样的,所以我不担心在本世纪的任何时候溢出int的范围。对于我的HashMap操作来说,从长到int再加上SparseArray优化的转换比从长到长的自动装箱要便宜吗?我的直觉是肯定的,但我需要一些额外的输入。

嗯。是的,将long转换为int可能会更快,但不清楚是否正确。

嗯。将long转换为int可能会更快,是的,但不清楚它是否正确。

将long转换为int肯定会更快,因为它只是一个JVM命令l2i,在使用装箱时反对内存分配和新对象创建,但正如Louis指出的,您正在失去精度。如果你确定你的id值在int范围内,你可能是安全的,但我不同意这样的假设

我要做的是研究从Android源代码复制SparseArray类并修改它以使用长键的可能性。我目前正在研究它,乍一看这绝对是可能的。

将long转换为int肯定会更快,因为它只是一个JVM命令l2i,与使用装箱时的内存分配和新对象创建相反,但是,正如Louis指出的,您正在失去精度。如果你确定你的id值在int范围内,你可能是安全的,但我不同意这样的假设


我要做的是研究从Android源代码复制SparseArray类并修改它以使用长键的可能性。我目前正在查看它,乍一看,这绝对是可能的。

这里有人问过这个问题。看,这里有人问过这个问题。看,正确的事情不太可能发生,但我肯定知道这种可能性。不过,更改ID类型将影响很多地方。呜呜。我想我暂时不去管它了。它工作得很好。正确性的事情不太可能发生,但我肯定知道这种可能性。不过,更改ID类型将影响很多地方。呜呜。我想我暂时不去管它了。它工作得很好。我想到了。我想到了。