オブジェクトの配列リストがあるとしましょうObjArray
。
そのオブジェクトがリスト内で自分自身を見つけ、リストから自分自身を削除する最も効率的な方法は何ですか?
私がよく使う方法は次のとおりです。
- リスト内のすべてのオブジェクトには、リスト内の位置に対応する ID があります
- が
object.remove()
呼び出されると、オブジェクトは単純に を呼び出しますObjArray.remove(ID)
。 ObjArray
--を呼び出して、インデックス ID から上に向かって解析されますObjArray.get(i).ID
。これにより、削除されたオブジェクトの上にあるすべてのオブジェクトが正しい ID に設定されます。
もう 1 つの方法は、もちろんObjArray
、一致するオブジェクトが見つかるまで単純に解析することです。
それで、これを行うより良い方法はありますか?orを使用して物事を改善できるArrayList
場合は、それで十分です。HashMap
LinkedList
要求に応じて詳細情報。
オブジェクトには、画面上のどこに描画する必要があるか、どの画像を描画するかに関する情報が含まれています。メイン JPanelのpaint
関数は、タイマーによって呼び出されます。このpaint
関数はリストをループしObjArray
、オブジェクトの描画関数 ( Obj.draw(Graphics g)
) を呼び出します。
オブジェクトは、クリックして追加または削除できます。
オブジェクトが削除されると、ObjArray
リストからそれ自体を削除する必要があります。最初の部分で考えられる2つの方法を述べました。
もっと効率的な方法を知っている人がいたら教えてほしいです。
要するに:アイテムがリスト内の位置を見つけたり知るための最も効率的な方法は何ですか