6

Java プログラムで大量の単語 (+200k) をストックする必要があり、それらに非常に高速にアクセスしたいと考えています。特定の単語が私の「辞書」に属しているかどうかを知る必要があるだけです。のようなペアは必要ありません<word, smthg>。可能であれば、標準ライブラリで解決策を探しています。

PS: データ構造を使用することは、これを行うためのより良い方法ではないでしょうか? 単語を含むファイルを毎回読む方が効率的ですか?

編集 : これは小さなプロジェクトです。有効性と記憶力に対処しなければならない

最終編集 : 最終的に HashSet を選択します。

4

4 に答える 4

0

TrieMapおそらく、私のまたはTrieSet実装をテストしたいですか (ここにあります)? このような場合のために特別にそれらを書きました。これまでのところ、Tries forStringbyte[]キーを実装しました。

    TrieSet<String> t = Tries.newStringTrieSet();

    t.add("hello");
    t.add("help");
    t.add("hell");
    t.add("helmet");
    t.add("hemp");

    List<String> resultsA = new ArrayList<>();
    t.findElements("hel", true, resultsA);    // search for prefix

    List<String> resultsB = new ArrayList<>();
    t.findElements("ell", false, resultsB);   // search for substring

    System.out.println("A: " + resultsA);
    System.out.println("B: " + resultsB);

これは次のように表示されます。

A: [hell, hello, helmet, help]
B: [hell, hello]
于 2013-04-18T11:36:02.490 に答える