在HashMap中使用长字符串键或短字符串键之间哪个更好?
示例:
HashMap<String, String> map = new HashMap<String, String>();
map.put("[ART.117.4002] ADAPTER RUNTIME (ADAPTER SERVICE): UNABLE TO INVOKE ADAPTER SERVICE", "Cannot invoke adapter service");
注意:长字符串将限制为最多120个字符,并且所有字符串都是大写字母。如果长度超过最大值。字符,它将被截断。
HashMap<String, String> map = new HashMap<String, String>();
map.put("B8B77715", "Cannot invoke adapter service");
注意:B8B77715是“[ART.117.4002] ADAPTER RUNTIME(适配器服务)的CRC32:无法调整适配器服务”。
假设HashMap中有4000多个条目。两个在性能方面哪个更好?
答案 0 :(得分:4)
CRC32是原始值的粗略近似值,但两个不同的原始值可能会产生相同的CRC32值。这使得它们成为HashMap
密钥的非常差的候选者,并且它降低数据完整性的事实应该胜过任何潜在的性能问题。绝对使用[ART.117.4002] ...
- 为什么在不需要时引入潜在的(如果罕见的)错误?
话虽如此,开头的部分(方括号之间)看起来有可能成为唯一标识符。如果是这样的话,你可以通过在括号之间使用令牌(通过字符串解析)而不是整个大字符串来看到一些(非常边缘的)性能提升。
答案 1 :(得分:0)
很难想象它可能很重要。使用最有意义的东西。