迭代器返回随机字母无法让它迭代

Sim*_*Sim 0 java iterator while-loop

我有这个迭代器,

Set<BigFraction> key = knowledgeD.keySet();
    TreeSet<BigFraction> sortKey = new TreeSet<BigFraction>();
        sortKey.addAll(key);

    Iterator<BigFraction> iter = sortKey.iterator();
        return iter;
Run Code Online (Sandbox Code Playgroud)

BigFraction只是数据类型,如果它使得使用int或其他东西更容易.

无论如何,当我稍后调用迭代器时

while (iterator().hasNext());
Run Code Online (Sandbox Code Playgroud)

它基本上只是给了我一个无限循环的somesort ...当我打印出iterator()之前我得到了循环

java.util.TreeMap$KeyIterator@53b4b24d
Run Code Online (Sandbox Code Playgroud)

任何想法都被卡住了,

问候,

Sud*_*hul 5

你需要Iterator像这样使用: -

while (iter.hasNext()) {
    System.out.println(iter.next()); //Do whatever you want
}
Run Code Online (Sandbox Code Playgroud)

where hasNext()告诉是否iterator有更多值,并next()返回迭代器中的下一个值.

此外,@ jacobmiterator解释了当前循环不起作用(进入无限循环)的原因.