1

コレクションに膨大な数の文字列を保存する必要があります。キーしか持っていないので、マップは必要ありません。データサイズは最大 400 万以上になる場合があります。現在、LinkedHashSet を使用しています。linkedhashSet のパフォーマンスは良好ですが、大量のメモリを使用します。LinkedList を試しましたが、時間がかかりすぎます。

私の要件は、広告掲載順を維持する必要があることです。存在する場合はエラーをスローする前に、リスト/セットで各アイテムが利用可能であることを確認してください。

コンマ区切りの文字列も使用してみましたが、あまり改善されませんでした。

誰でもより良い解決策を提案できますか。

4

2 に答える 2

1

TreeSetは順序を維持するのに最適です。また、適切な検索アルゴリズムを使用して、エントリのコレクションを確認してください。これにより、パフォーマンスが大幅に向上します。

于 2012-11-27T10:10:44.327 に答える
1

TRIE を実装しようとしましたか?アルファベット順に並べ替えられた単語を維持し、文字列ごとに個別のオブジェクトを維持しないため、メモリの消費量が少なくなります。代わりに、1 つのノードに 1 つの文字だけを格納します。https://forums.oracle.com/forums/thread.jspa?messageID=8787521 およびhttp://en.wikipedia.org/wiki/Trieを参照してください

于 2012-11-27T10:11:29.897 に答える