Java 长到整型比自动装箱长到整型便宜吗?
我有一堆东西,我一直在用长长的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范围内,你可能是安全的,但我不同意这样的假设Java 长到整型比自动装箱长到整型便宜吗?,java,android,casting,autoboxing,Java,Android,Casting,Autoboxing,我有一堆东西,我一直在用长长的ID号跟踪它们。因为我对ID序列没有任何保证,所以我将它们保存在一个HashMap中以供随机访问。然而,在安卓系统中,他们有一个非常好的类叫做HashMap,他们声称这个类比我的HashMap使用速度更快。也许最值得注意的是,它没有自动装箱税。不幸的是,键是int,不是长的 我的长ID的值是这样的,所以我不担心在本世纪的任何时候溢出int的范围。对于我的HashMap操作来说,从长到int再加上SparseArray优化的转换比从长到长的自动装箱要便宜吗?我的直觉是
我要做的是研究从Android源代码复制SparseArray类并修改它以使用长键的可能性。我目前正在查看它,乍一看,这绝对是可能的。这里有人问过这个问题。看,这里有人问过这个问题。看,正确的事情不太可能发生,但我肯定知道这种可能性。不过,更改ID类型将影响很多地方。呜呜。我想我暂时不去管它了。它工作得很好。正确性的事情不太可能发生,但我肯定知道这种可能性。不过,更改ID类型将影响很多地方。呜呜。我想我暂时不去管它了。它工作得很好。我想到了。我想到了。