繁体   English   中英

没有比较器的java 8 Hashmap中的红黑树实现

[英]Red black tree implementation in Hashmap of java 8 without comparator

Treemap 在内部使用红黑树来实现。 Treemap 将 Comparable<> 或 Comparator<> 作为红黑树用于在二叉搜索树中插入数据的参数。

从 java 8 开始,一旦达到链表的三项,哈希映射就开始使用红黑树,以防发生哈希冲突。 我的问题是,对于自定义类,我实现了 equals() 和 hashcode() 而不是比较器,并使用这个自定义类作为 hashmap 的键,那么在哈希冲突的情况下,没有比较器的情况下红黑树将如何工作。

总结我对这个问题的其他观众的理解:

  1. 如果有桶冲突(不一定是哈希码冲突),那么二叉树就会出现并搜索哈希码
  2. 如果哈希码相同,那么它将依赖于哈希映射键的可比较实现。
  3. 如果 key 没有实现可比较,那么在这种情况下将遍历树的两个(左和右)分支。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM