2016-05-03 9 views
2

私は、注文オブジェクトの束(価格と数量を含む)を並べ替え順序で格納することができるデータ構造が必要な問題があります。最低価格。私が必要とするのは、「挿入」と「最小の検索」です。優先順位のキューを選択するように思われますが、問題は、重複の挿入順序を追跡して、最初に重複して挿入する必要があることです最初に取得されます。重複は、この場合同じ価格の単なる注文です。Java - 重複した挿入順序を保持するPriorityQueueの代替品

JavaのPriorityQueueクラスは、重複の検索順序に関する約束をしていないと思われるので、私は別の代替手段が必要です。あなたは何をお勧めしますか?

答えて

6

アトミックカウンタおよび/またはタイムスタンプを使用してフィールドを追加したり、元の順序を記録することができます。

+3

正確に。 'Comparator'を使うコンストラクタを使い、その関数をカウンタやタイムスタンプとアイテムIDと比較させます。 –

+1

原子カウンタを使用することに加えて、それは、例えば、 ** Initialize **: 'final static AtomicInteger counter = new AtomicInteger(); ** **使用法**:' counter.getAndIncrement() 'は、現在の各値を1ずつアトミックにインクリメントします。 –

関連する問題