在Java中,如果想要實現返回上一步操作的最佳做法是使用棧(Stack)數據結構。當需要返回上一步時,只需要從棧中彈出最后一個元素即可回到上一步狀態。
以下是一個簡單的示例代碼:
import java.util.Stack;
public class BacktrackingExample {
private Stack<Integer> stack = new Stack<>();
public void doSomething(int num) {
// 執行某些操作
stack.push(num); // 將操作的結果壓入棧中
}
public void undo() {
if (!stack.isEmpty()) {
stack.pop(); // 彈出棧頂元素,回到上一步狀態
} else {
System.out.println("已經回到初始狀態,無法再撤銷操作。");
}
}
public static void main(String[] args) {
BacktrackingExample example = new BacktrackingExample();
example.doSomething(1);
example.doSomething(2);
System.out.println("當前棧的狀態:" + example.stack);
example.undo();
System.out.println("回到上一步后的棧狀態:" + example.stack);
example.undo();
System.out.println("再次回到上一步后的棧狀態:" + example.stack);
}
}
通過使用棧來保存操作的狀態,可以輕松實現返回上一步操作的功能。在實際開發中,可以根據具體需求來擴展和優化這個基礎實現。