3

List in Java について質問したいです。

リスト内の要素の削除、追加、検索を簡単に実装できます。しかし、Java でリストの取り消しとやり直しを実装する方法は?

誰でもこれについて私を助けることができますか?

4

4 に答える 4

4

このために を実装しようとしているかもしれませんCommand Design Pattern。まともな単純化された例は、Listここにあります http://www.algosome.com/articles/implementing-undo-redo-java.html

于 2011-09-10T20:40:30.743 に答える
1

リストの削除や追加などの操作を元に戻したりやり直したりしたいと思います。

Undo と Redo のインデックス機能を備えた別のリスト、たとえば ArrayListを使用するだけです。

  • 元のリストへの add(要素) または delete(要素) が実際にそのリストを変更するたびに、元に戻すリストの最後に要素を配置します。
  • 次に、操作を元に戻したい場合は、元に戻すリストを移動するだけです。元に戻すリストの要素が元のリストにない場合は追加し、元のリストにある場合は削除します。
  • 元に戻すリストをやり直しにも使用する場合は、元に戻したばかりの要素を元に戻すのではなく、インデックスを介して元に戻すリストを移動します。次に、元に戻すリストを両方向に移動できるため、操作を元に戻したりやり直したりできます。
于 2011-09-10T20:51:40.363 に答える
0

そのためにはバインディングが必要です。

私にとって、これはそれを行うための最も効率的な方法です。SOでのこの質問は、どこから始めるべきかに関するいくつかのヒントを与えることができます。

于 2011-09-10T20:57:36.150 に答える
0

リストからアイテムを削除して元に戻すという意味ですか?リストの新しいクラスを簡単に作成し、次のようなプロパティを定義できます。最後に実行されたアクション + 影響を受けるアイテムの元の値 (および場合によってはインデックス) を保存します。やり直しについても同じです(少なくともやり直しと元に戻すの1ステップ)。項目の順序を気にしない (または簡単に順序付けできる) 場合は、最後に実行されたアクションのリストと元の値のリストを定義します。例: lastAction[0]="delete"; lastElement[0] = 1; // リストから 1 を削除したことを意味します

それが最初のダミーのアイデアです。考慮すべき問題がいくつかあるかもしれません...

于 2011-09-10T20:47:05.247 に答える