2011-09-10 5 views
3

JavaのListについて質問したいと思います。Javaでの取り消しとやり直しの実装

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

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

+1

「リストの取り消しとやり直し」とは何ですか? –

+0

例えば、要素を削除した後、取り消したいので、追加することができます –

+2

これは確かにListクラスの標準操作ではありません。 –

答えて

0

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

これは最初の仮説です。おそらく、考慮するいくつかの問題があります...

1

削除のような操作をやり直してリストに追加すると思います。

ちょうど別のリストを使用して、元に戻すとやり直しのインデックス機能を使用してください。 ArrayList:

  • 元のリストのadd(要素)またはdelete(要素)が実際にそのリストを変更するたびに、その要素を元に戻すリストの最後に置きます。
  • 操作を元に戻すときは、元に戻すリストを移動するだけです。元に戻すリストの要素が元のリストにない場合は、元のリストにある場合は追加して削除します。
  • また、アンドゥリストをやり直しに使用したい場合は、アンドゥーリストから "undid"した要素を削除せず、インデックスを使ってアンドゥリストを移動してください。次に、両方向でアンドゥリストを移動して、操作を元に戻してやり直すことができます。
0

これを行うにはバインディングが必要です。

これは私にとっては最も効果的な方法です。 This questionはどこから始めるべきかに関するヒントをあなたに与えることができます。

関連する問題