繁体   English   中英

遍历二叉搜索树

[英]Iterate through a binary search tree

我想遍历Java词典中的每个项目。 为了澄清我想做什么,这是C#代码:

Dictionary<string, Label> LableList = new Dictionary<string, Label>();
foreach (KeyValuePair<string, Label> z in LabelList) { … }
temp += ("<" + it.next() + ", " + bstd.getValue(it.next()) + ">");

呼吁next每两次hasNext() 将下一个值存储在局部变量中。

Object current = it.next();
temp += ("<" + current + ", " + bstd.getValue(current) + ">");

要在没有地图迭代器的情况下进行迭代:

 for(Type t : map.values().toArray(new Type[map.size()])) {
      //values
 }

尽管我已经有一段时间没有使用过了,但是可能有更清洁的方法

您想要使用的是HashMapTreeMap来用Java实现字典。 HashMap类使用哈希来维护字典,而TreeMap使用Red Black Tree(BST的变体)来维护字典。

而且,如果映射是从String到类Label的,则可以使用以下代码。 您还必须导入java.util。*并分别声明Label类,以使代码成功运行。

    TreeMap<String, Label> map = new TreeMap<String, Label>();
    for (Map.Entry<String, Label> entry : map.entrySet()){
         System.out.println(entry.getKey() + "/" + entry.getValue());
    }

暂无
暂无

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

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