1

並べ替え可能なキューを App Engine に保存しようとしています。ユーザーのように並べ替え可能で、カスタム オーダーを作成できます。それについて考える最も簡単な方法は、曲のリストです。5 分ごとに新しい曲がリストから選択され、再生されます。ただし、ユーザーは新しい曲を追加したり、リストの再生順序を調整したりできます。曲が再生されると、リストから削除されます。リスト内の多数の曲に対してこれを行うにはどうすればよいですか。

sortOrder フィールドを追加することを考えましたが、曲が再生されるたびにリスト全体を更新する必要があります。次に、フローティングソート順を維持し、最高と最低のエントリを追跡することを考えましたが、一度に多くの曲が追加されると問題が発生する可能性があるようです.

これについて私が見ることができる設計パターンに関する情報は非常に高く評価されます。また、曲の一意のキー値を使用してリストを並べ替える方法はありますか? すべての新しい ID が以前に作成された ID よりも大きいことを保証できますか、それともこれを保証する方法はありますか?

4

1 に答える 1

0

要素を任意に再配置または追加/削除できる順序付けられたキューが必要だと思います。その場合は、デザイン パターンではなく、実際にはデータ構造である連結リストを使用できます。

java.util.LinkedListを参照してください。

たとえばremove(int index)、順序を維持しながら、リスト内の任意の位置で曲を削除するために使用できます。add(int index, Object element)同様に、順序を保持しながら、リスト内の任意のインデックスに曲を挿入するために使用できます。そこには他のユーティリティメソッドもありますが、それが必要なものを実装するための基礎のようです。

于 2013-01-12T21:41:33.987 に答える