我想问一个关于Java List 的问题。
很容易在列表中实现删除、添加和搜索元素。但是如何在Java中实现列表的撤消和重做呢?
谁可以帮我这个事?
您可能希望为此实现一个Command Design Pattern
。List
可以在这里找到一个体面的简化示例http://www.algosome.com/articles/implementing-undo-redo-java.html
我猜您想撤消和重做删除和添加列表等操作。
只需对 Undo 和 Redo 使用另一个具有索引功能的列表,例如 ArrayList:
您的意思是从列表中删除项目并撤消它?您可以轻松地为列表创建新类并定义属性,例如:上次执行的操作 + 存储受影响项目的原始值(可能还有索引)。重做也是如此(至少在重做和撤消中的一个步骤)。如果您不关心项目的顺序(或者您可以轻松地订购它们),那么定义最后执行的操作列表和原始值列表。例如:lastAction[0]="delete"; 最后一个元素[0] = 1; // 表示你从列表中删除了 1
这是第一个也是愚蠢的想法。也许有一些问题需要考虑......
你需要绑定才能做到这一点。
对我来说,这是最有效的方法。SO的这个问题可以给你一些关于从哪里开始的提示。