为什么在Java8中HashMap中的TreeNode子类扩展LinkedHashMap.Entry而不是直接扩展HashMap的Node子类? [英] why in Java8 the TreeNode subclass in HashMap extends LinkedHashMap.Entry instead of directly extending HashMap's Node subclass?

查看:80
本文介绍了为什么在Java8中HashMap中的TreeNode子类扩展LinkedHashMap.Entry而不是直接扩展HashMap的Node子类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

实际上,treenode是一棵红黑树的节点,并且需要一个父字段,一个左字段和一个右字段来形成一棵树.但我认为没有必要具有LinkedHashMap.Entry的某些属性.

Actually a treenode is a node of a red-black tree, and needs a parent field, a left field and a right field to form a tree. but I don't see any necessity for it to have some attributes of an LinkedHashMap.Entry.

有人知道原因吗?

推荐答案

可能是因为在 HashMap LinkedTreeNode 中具有单独的 TreeNode LinkedHashMap 中是边际?

Maybe because the gain from having separate TreeNode in HashMap and LinkedTreeNode in LinkedHashMap is marginal?

还是因为 LinkedHashMap 需要一个 LinkedTreeNode ,它需要从扩展到单独的类?

Or because LinkedHashMap needs a LinkedTreeNode that would need to extend from to separate classes?

让我们假设 HashMap 具有一个 HashMap.TreeNode 类,该类仅从 HashMap.Node 扩展.

Let's assume that HashMap had a HashMap.TreeNode class that extends solely from HashMap.Node.

LinkedHashMap 需要类似的类 LinkedHashMap.LinkedTreeNode ,该类需要从 LinkedHashMap.Entry 扩展(反过来又从 HashMap扩展.Node ),但由于这两个类的交织方式,还需要从 HashMap.TreeNode 扩展.

LinkedHashMap needs a similar class LinkedHashMap.LinkedTreeNode that needs to extend from LinkedHashMap.Entry (which in turn extends from HashMap.Node), but would also need to extend from HashMap.TreeNode because of the way the two classes are interwoven.

这将需要从Java明确禁止的两个类进行扩展.

That would require extending from two classes, which Java explicitly prohibits.

这篇关于为什么在Java8中HashMap中的TreeNode子类扩展LinkedHashMap.Entry而不是直接扩展HashMap的Node子类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆