未知深度java的嵌套哈希映射

我有一个要求,我需要有一个嵌套的hashmap。 但深度将在运行时决定。 例如,如果在运行时,用户说3,那么我的hashmap应该是这样的

HashMap<String, HashMAp<String, HashMap>> 

如果他说4那么

 HashMap<String, HashMAp<String, HashMap<String, HashMap>>> 

有没有办法实现这种function? 其他一些API或工具包??

哦,这几乎肯定是一个非常糟糕的主意。

你听起来像是真的想要一棵树或图形并且不知道如何编写它,所以你发明了这种符号来尝试使它与HashMap一起使用。

别。

通过弄清楚如何正确地写出你需要的东西,你会更好。

有一个很好的理由没有图书馆可以做你想要的 – 你不应该。

  1. 最好在一个数据结构上运行100个function,而在10个数据结构上运行10个function。 Alan Perlis。

您所要求的是在Clojure的standrad库中实现:与已经陈述的相反,嵌套的hashmaps是表示树的明显且绝对理智的方式。 “`clojure(def my-tree {:a {:aa 0}:b 0:c {:cc 0:dd {:e 0})

(=(get-in my-tree [:c:dd:e])0)“`

您也可以通过un objet图表来表示它,但是你将失去hashmaps的一般性:对象无论如何都是概念性的hashmaps,它可以拥有的属性有限制。

您当然可以使用HashMap类型定义哈希映射,并以类型安全为代价获取动态深度。

但是duffymo是正确的 – 你可能会滥用结构。 你为什么想要这样的类型?

您可能想在树上查看这篇文章 。 你会发现它很有用。