迭代二叉搜索树

时间:2014-03-22 22:18:57

标签: java binary-search-tree

我想通过Java查看字典中的每个项目。为了澄清我想做什么,这是C#代码:

Dictionary<string, Label> LableList = new Dictionary<string, Label>();
foreach (KeyValuePair<string, Label> z in LabelList) { … }

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

迭代没有map迭代器:

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

虽然我有一段时间没有使用过这种方法,但可能还有一种更简洁的方法

答案 2 :(得分:0)

您想要使用的是HashMapTreeMap来实现Java中的字典。 HashMap类使用散列来维护字典,而TreeMap使用红黑树(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());
    }