次の場合、アイテムをリストに保持するためにどの方法を使用する必要がありますか?
- アイテムのリストを含むオブジェクトがあり、それらのアイテムに対してアクションを実行できます
- これらのアイテムはリスト内で並べられています
- リスト内の項目の位置を変更し、ID に基づいて項目を追加または削除できる必要があります。
- リストは最終的にデータベースに保存されます (そして、アイテムはこのリスト内での順序を維持する必要があります)
- 順序付けされた項目に「順序」プロパティを設定しても意味がありません (これらのオブジェクトは複数の種類のリストに含まれる可能性があります)。
私が持っている選択肢(他に選択肢はありますか?):
- List オブジェクトを使用すると、順序が自動的に維持されます。しかし、ID でオブジェクトを見つけるには、(最悪の場合) すべてのオブジェクトをループ処理する必要があります。
- キー/値 (オブジェクト ID / オブジェクト) を持つマップを使用すると、オブジェクトを簡単に (そして高速に) 取得し、オブジェクトの順序 (オブジェクト ID / オブジェクトの順序) を保持する別のマップを保持できます。
解決策 #1)これは、パフォーマンス上の欠点を伴う最も簡単な解決策のようです。
解決策 #2)これは最速の解決策のように思えますが、リストを並べ替えるときにより多くのコードが必要になります。
順序付けられ、キー/値のペアを持ち、object.add(index, key, value) または object.getByIndex(index) または object.getByKey(key) のようなメソッドを持つ、私が知らないオブジェクトはありますか?