|
|
2
0
如果你使用的是HashMap,那么就没有办法使用某个对象了。如果最大值为31,则整数实现将缓存所有值。只要使用自动装箱或
Integer.valueOf
访问整数实例(不是
|
|
3
0
写一个这样的类:
每个字符串只创建一次,字符串的数量足够小,因此.equals不会被多次调用,如果总是使用eth常量,则.equals根本不会被调用。 如果你使用一个映射,它将需要比这更多的内存,而且考虑到字符串的数量很小,上面的代码可能会更快。此外,您还可以重构实现,以便在内部使用映射(或数组,或其他任何东西),并查看什么是最快的/使用最少的内存,而无需更改API。 编辑: 另一个要看的是 proposal for switch with String ... 如果这一点进入语言(我想是的),如果Android采用它,那么你就可以用一个开关来替换上面的代码,而不会影响性能。实际上,它们对hashCode做了一个开关,然后只对具有相同hashCode的对象调用.equals。这确实要求您提前计算出哈希代码,并且hashCode总是永远返回相同的结果(这应该是因为String定义了hashCode必须工作的方式)。 |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 2 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 2 年前 |