如何在特定索引处获取树状图的键和值
我有一个树状图,其中包含一组“键和值”对。如何在树状图的特定索引处同时获取键和值?
编辑 : @TO-ALL : 谢谢。但我知道如何通过使用额外的ArrayList来实现它。我只是想,有没有办法在不使用额外的ArrayList的情况下实现这一目标。
我有一个树状图,其中包含一组“键和值”对。如何在树状图的特定索引处同时获取键和值?
编辑 : @TO-ALL : 谢谢。但我知道如何通过使用额外的ArrayList来实现它。我只是想,有没有办法在不使用额外的ArrayList的情况下实现这一目标。
如果您真的想使用 TreeMap 并按位置获取,则可以使用以下方法:
key => treemap.keySet().toArray()[0]
value => treemap.get(key);
OR(如果您只想要值)
treemap.values().toArray()[0];
但是我建议你使用迭代器,就像在上面的方法中一样,它需要在你想要找到的时候创建数组(所以效率不高),而且你应该足够小心,以确保索引不会失控。
首先,我不确定为什么这里的人们如此频繁地关注一个问题的有效性。在很多情况下,人们认为按排序顺序维护 ArrayList 是合适的。对于大型列表,按排序顺序维护 ArrayList 的效率非常低下。
标准 Java (Oracle) 源代码分发的入口节点不维护其后代树的大小。因此,如果没有低效的顺序搜索,就不可能按索引标识映射中的元素。
我发现这个缺点非常严重,以至于我编写了自己的AVL映射,可以通过索引和计算indexOf(E)有效地获取元素。使这成为可能就像保持条目的左分支和右分支的大小一样简单。Glazedlists库有可能在某个地方嵌入了一个可搜索的树。您可能希望对此进行审查。