2011-07-13 3 views
1

私は、住所などのオブジェクトを含むリストを持っています。都市、通り、名前。さまざまなパラメータでJavaコレクションの注文

そして、必ず3つのリストを受け取る必要があります。最初は市から注文し、2番目は通りで、3番目を名前で注文します。可能な順序は結果的に同じリストであることは明らかである。しかし、それは多くの時間を消費する。 パラメータに依存することができるIteratorのようなものを、対応する順序でコレクションのすべてのメンバーを返すように作成できますか?または、別のソリューションが存在しますか?

ありがとうございました。

+0

このオブジェクトをどのように埋めますか?データベースから?その場合は、データベースから検索する際にそれらを注文する必要があります。 – Marcelo

+0

+1興味深い質問 –

答えて

1

標準のJavaコレクションフレームワークではありません。あなたが働きたいと思っているものは、同じコレクションで動作する異なる検索ツリーを構築する必要があります。

それはあなたが各基準項目に基づいて3 Comparators- 1を構築し、各ソートを取得するためにCollections.sort(リスト、コンパレータ)を呼び出すことができますDB

1

に異なる列にインデックスを持つようなものです。

これを同じリストで何度もやっている場合は、3部作成してください。

イテレータのアイデアは、少なくともソートを行うのと同じくらい醜いリストをトレースするには何らかの方法が必要なので、実際にはそれほど効率的ではないことに注意してください。つまり、イテレータは、リストの自然順序以外の何らかの方法で、次に来るアイテムを知る必要があります。リストを自然順序からナビゲートしようとすると、リストを並べ替えるのと同じように簡単です。

+0

ええと。私はdownvoteの背後にある説明を読むのに興味があります。 – mre

+1

'Collections.sort()'は、リストを適切にソートします。これはあなたがソート、コピー、並べ替え、コピーする必要があります...あなたが避けたい...働くためには –

+0

OPはリストをコピーしないことについて何も言わなかった。または同じリストを使用して、別の方法でソートします。 –

関連する問題