0

私たち、fra、ukなどの国コードのリストがあります。

それらをプリロードして、文字列がそこに存在するかどうかを確認する必要があります。文字列の比較はリソースを大量に消費する可能性があるため、使用できる最も高速なデータ構造は何ですか?

文字列の静的配列、ArrayList、またはその他のものを作成する必要がありますか?

ありがとう!

4

1 に答える 1

6

短い文字列の固定セットがあり、特定の文字列がその中にあるかどうかをテストする場合はHashSet<String>、を使用することをお勧めします。これにより、非常に高速なルックアップが提供され、クエリに非常に迅速に応答できます。例えば:

Set<String> myStrings = new HashSet<String>();
myStrings.add("us");
myStrings.add("fra");
/* ... */
if (myStrings.contains("test-string")) {
   // String is there.
} else {
   // Nope!  String is not there.
}

はるかに長い文字列のセットが多数ある場合は、トライが適切な(ただしスペース効率がやや劣る)データ構造になります。使用している文字列が事前にわかっていて、そのセットが変更されない場合は、 DAWGデータ構造を調べることを検討してください。これらはどちらもJava標準ライブラリの一部ではありませんが、Googleですばやく検索すると、両方に関する情報が表示されます。

お役に立てれば!

于 2013-01-06T05:26:08.500 に答える