我什么时候才能不用hashmap呢?

我什么时候才能不用hashmap呢?,hash,Hash,是否有任何时候使用hashmap不一定是正确的方法?一般来说,hashmaps似乎胜过了树、链表等。有没有不使用散列的时候?如果您的所有对象键都具有相同的hashCode,或者您甚至没有某种键,或者您有空键,或者您的算法或程序不需要散列映射。例如,如何使用hashmap实现图形?一堆怎么样?一套?我在这里回答了基本相同的问题:。Hashmap应该是你最后的手段,而不是一把锤子来敲打每一颗钉子。它为您提供零保证,因此,如果这是解决任何问题的唯一解决方案,则意味着您不知道如何解决任何问题。(如果你这

是否有任何时候使用hashmap不一定是正确的方法?一般来说,hashmaps似乎胜过了树、链表等。有没有不使用散列的时候?

如果您的所有对象键都具有相同的
hashCode
,或者您甚至没有某种键,或者您有空键,或者您的算法或程序不需要散列映射。例如,如何使用hashmap实现图形?一堆怎么样?一套?

我在这里回答了基本相同的问题:。Hashmap应该是你最后的手段,而不是一把锤子来敲打每一颗钉子。它为您提供零保证,因此,如果这是解决任何问题的唯一解决方案,则意味着您不知道如何解决任何问题。(如果你这样做了,那么你实际上会解决它,这意味着你能够提供某种性能保证。)一个图可以很容易地用一个哈希映射实现——从节点到相邻节点向量的哈希。集合也很容易——将集合的成员散列为一个伪值。堆栈也很容易,虽然有些毫无意义——通过从数字索引到值进行散列,将散列映射用作“数组”,并存储当前使用的最高索引。@AlexD注意,我没有说这是不可能的。但正如您在报告中指出的,它不是一个普遍适用的数据结构;至少在使用堆栈的情况下,我确信使用其他实现策略可以获得更好的性能。这就是为什么我说使用映射实现堆栈是毫无意义的——实现比使用向量或链表更慢、更复杂。