了解TreeMaps

Dax*_*rax 6 java map treemap

这是关于树图的noobie问题.我已经阅读了Java API和其他文档,但我仍然不清楚它是如何工作的.

根据我的理解,java(或任何语言)中的树有点像家谱; 你说的地方:

Layer 1                               OldestGuy    
Layer 2       OldGuy1       Oldguy2         OldGuy3        OldGuy4           OldGuy5
Layer 3   Guy1 Guy2 Guy3 Guy4 Guy5  Guy6........ etc
Run Code Online (Sandbox Code Playgroud)

其中第1层有1个值(即中心节点),并且从那里可以在每个后续层中有任意数量的值(或者Guys),并且一些"分支"可以比其他更长(例如它可以是OldestGuy) - > OldGuy1 - > Guy1&Guy2 ... Guyn同时另一个分支只是OldestGuy - > OldGuy4)

考虑到这一点,我试图在特定分支的特定位置为TreeMap添加值,同时建立特定的连接,但我似乎得到的结果与HashMap的结果相同.

(看起来我想做的事情需要比TreeMap更多的东西......因为Key(或Layer(?)对于几个不同的值会是相同的)

任何建议/解释都会很棒,因为我觉得好像我正在用这个咆哮错误的树.

我已经看到使用googles .jar(例如家谱)完成此操作的示例,但我只是想了解这一点,因为TreeMap和Trees之间似乎存在很多冲突以及如何在其中存储数据.

Oli*_*rth 8

TreeMap只是Map在幕后使用红黑树的实现.树的详细信息不会向您公开,因此您无法将元素存储在任意位置.

换句话说,a TreeMap不是通用树数据结构.如果那是你真正想要的,也许看看这个Stack Overflow问题:Java树数据结构?.