我有以下节点类
Class Node {
private int id;
public int getId() {
return this.id;
}
}
然后创建带有节点的TreeSet。接下来,我想基于ID匹配查找并返回一个Node对象。但是,每次findNode()函数返回的是下一个到下一个Node而不是下一个。我了解这是因为两次调用了iterator.next()。如何仅调用一次即可检查id值以及返回对象引用。我还尝试通过创建一个临时的Object引用进行尝试,但结果还是一样。
Class NodeSet {
Set set = new TreeSet();
public Node findNode(int id) {
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
if(iterator.next().getId() == id)
return iterator.next();
}
return null;
}
}
参考方案
Class NodeSet {
Set set = new TreeSet();
public Node findNode(int id) {
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Node node = iterator.next()