HashMap
何百ものComparable
オブジェクト(たとえば、タイプ)を含む多数のデータ構造がMyClass
あり、すべての値(キーではない)を単一のデータ構造に入れてから、それを並べ替える必要があります。
オブジェクトの量と到着率のためMyClass
、この手順(少なくとも1ミリ秒に1回実行)は可能な限り効率的である必要があります。
アプローチはSortedSet
、大まかに次のように使用することです。
HashMap<String, MyClass>[] allMaps = ... // All the HashMaps
SortedSet<MyClass> set = new TreeSet<MyClass>();
Collection<MyClass> c;
for (HashMap<String, MyClass> m:allMaps)
{
c = m.values();
set.addAll(c);
}
ソートされたコレクションをに渡す方が速い場合があります。これにより、挿入ごと、または数回の挿入ごとにset.addAll()
再ソートされる場合があります。TreeSet
ただし、そのためには、List
に渡す必要があります。つまり、からへCollections.sort()
の変換を実行する必要があります。つまり、別のパフォーマンスヒットを維持する必要があります。Collection
List
また、同じ目標を達成するための別のより効率的な方法があるかもしれません。
コメント?