我想问一个关于Java中List的问题。
在列表中实现删除、添加和搜索元素是很容易的。但是如何在Java中实现列表的撤销和重做呢?
有人能在这方面帮我吗?
发布于 2011-09-10 20:40:31
您可能希望为此实现一个Command Design Pattern
。可以在http://www.algosome.com/articles/implementing-undo-redo-java.html中找到List
的一个很好的简化示例
发布于 2011-09-10 20:51:40
我猜你想要撤消和重做列表上的删除和添加等操作。
只需使用另一个具有撤消和重做索引功能的列表,例如ArrayList:
发布于 2011-09-10 20:47:05
你的意思是像从列表中删除项目并撤消它?您可以轻松地为列表创建新类,并定义如下属性:上次执行的操作+存储受影响项的原始值(可能还有索引)。重做也是如此(至少重做和撤消中的一个步骤是如此)。如果您不关心项目的顺序(或者您可以轻松地对它们进行排序),那么可以定义上次执行的操作列表和原始值列表。例如: lastAction="delete";lastElement = 1;//表示从列表中删除了1
这是第一个也是虚拟的想法如何做到这一点。也许有一些问题需要考虑……
https://stackoverflow.com/questions/7374545
复制相似问题