java中有没有办法将对象重置为初始状态。我正在演示搜索,但是,当我到达节点时,将值更改为
current.visited = true;
然后下一个搜索运行现在必须等于
current.visited = false;
除了错误的逻辑外,这是可行的。
理想情况下,构造代码如下所示:
System.out.printf ("Breadth first search...\n\n");
breadthFirstSearchMap (Romania);
RESET Objects here...
System.out.printf ("Depth first search...\n\n");
depthFirstSearchMap (Romania);
and again here...
System.out.printf ("Depth limited search...\n\n");
depthLimitedSearchMap (Romania);
答案 0 :(得分:1)
public interface Resetable {
public void reset();
}
class Foo implements Resetable {
...
}
答案 1 :(得分:0)
ClassObject depthFirstSearchMap;
public void blabla(){
depthFirstSearchMap = new ClassObject(Romaina);
System.out.printf ("Breadth first search...\n\n");
breadthFirstSearchMap (Romania);
depthFirstSearchMap = new ClassObject(Romaina);
System.out.printf ("Depth first search...\n\n");
depthFirstSearchMap (Romania);
depthFirstSearchMap = new ClassObject(Romaina);
System.out.printf ("Depth limited search...\n\n");
depthLimitedSearchMap (Romania);
}
答案 2 :(得分:0)
你应该看一下memento设计模式,尽管如果imho最简单的方法是将访问过的标志存储为被访问节点id的java.util.Set
(在任何Set
实现中包含操作成本1)你开始每次搜索。
否则Memento模式Wiki dexcription是:
“memento模式是一种软件设计模式,可以将对象恢复到以前的状态”
答案 3 :(得分:0)
我会使用自己的reset()
方法。这很简单。