Java 何时使用哈希表?
我有一个关于什么时候应该使用哈希表而不是AVL树的一般性问题。我记得我的讲师说过,如果数据大小大约为210或220,AVL树是可以接受的,因为使用哈希表将生成哈希操作等Java 何时使用哈希表?,java,data-structures,tree,size,hashtable,Java,Data Structures,Tree,Size,Hashtable,我有一个关于什么时候应该使用哈希表而不是AVL树的一般性问题。我记得我的讲师说过,如果数据大小大约为210或220,AVL树是可以接受的,因为使用哈希表将生成哈希操作等 所以我想知道在实践中,是否有一个关于数据大小的一般规则来告诉我们何时应该选择哈希表而不是AVL树?在处理大于220的数据时,哈希表总是首选吗 哈希表是“浪费”内存的,因为支持表通常大于条目数。树没有这个问题,但确实存在查找(和大多数其他操作)是日志(n)操作的问题。所以,对于小数据集,树可能更好,这是正确的,这取决于您对内存效率
所以我想知道在实践中,是否有一个关于数据大小的一般规则来告诉我们何时应该选择哈希表而不是AVL树?在处理大于220的数据时,哈希表总是首选吗 哈希表是“浪费”内存的,因为支持表通常大于条目数。树没有这个问题,但确实存在查找(和大多数其他操作)是日志(n)操作的问题。所以,对于小数据集,树可能更好,这是正确的,这取决于您对内存效率的关注程度 没有关于数据大小的一般规则数据-它取决于您正在比较的实现的具体情况以及您想要优化的内容(内存或CPU)。Javadocs提供了一些关于Java提供的实现性能的见解:
除此之外,编写一些基准测试并比较不同的实现将给您带来更多的洞察力。我总是使用哈希表,在我有理由认为它需要改进之前不必担心它。