【发布时间】:2013-05-06 09:44:16
【问题描述】:
我听说散列(即将字符串或对象转换为数字)用于字符串等,因为它比字符串更容易比较数字。如果属实,这是什么原因?
【问题讨论】:
-
我有一个预感 - john = 12, johnny = 5. 12 = 1100 in binary 5 = 0101. 比较数字(转换为二进制后)要快得多。比较 -john- 的 4 个字符(每个字符都有自己的二进制代码),然后意识到它们不一样。但是,如果名称以不同的字母开头,则散列将无济于事。说得通 ?我不确定它是否正确。
-
就占用多少内存而言,字符串往往比您通常使用的数字大得多,比较字符串的标准方法是查看它们是否相同大小,如果所以,比较他们的记忆,看看它是否在任何地方都不同。简单的“原始”整数类型可以存储为 2s 补码压缩位:缺点是它们只能在 32 位空间中存储(例如)-20 亿到 20 亿(左右)的值,但具有优势相比之下,内存要少得多。这些整数比较通常也在单个处理器周期内完成。
标签: java c++ computer-science