EDIT:のAndroid - アプリケーションの起動を最適化
私はあなたの良いアドバイスに従っていると私は私のdictionnaryを含むようにトライデータ構造を使用しました。私が選んだ構造は、興味のある人々のためにthis oneです。
しかし、今私は別の問題があります:私のアプリケーションを起動するたびに私のトライのデータ構造の構築は非常に長いです!たぶん私の辞書が大きすぎる、あるいは私が選んだトライの実装が単純な辞書にはあまりにも適切でないかもしれない。
登録されたデータベースのようにアプリケーションを終了した後でもこの構造を維持する方法があるのですか?その問題が実装によって引き起こされたと思われる場合は、もう1つお勧めできますか?
私はアンドロイドのプロジェクトに深刻な問題があります。と
- の言葉 ':ここ
目標があることを行うには6つの文字
のセリエで作ることができるすべての単語を計算することで、私は私のBDDに2つのテーブルをしました'_id'と 'mots'の2つの列
- 'temp'同じ列のテンポラリテーブル 。
「単語」には語彙のすべての単語が含まれています(「巨大」)。「temp」には、6文字(少なくとも3文字)で作成できるすべての文字の組み合わせが含まれます。
私はテーブル '単語'の中にあるように実際の単語をテーブル 'temp'で選択しようとしています。ここではそれを行うには、私のコードは次のとおりです。
私は良いの文字を含む単語(少なくとも3つの文字が使用されている)
db.execSQL("CREATE TABLE temp2 (_id integer primary key autoincrement, mots text not null);");
db.execSQL("INSERT INTO temp2 (_id, mots) SELECT * FROM words WHERE mots like '%"+lettres.tab_char.get(0)+"%' OR mots like '%"+lettres.tab_char.get(1)+"%' "
+ "OR mots like '%"+lettres.tab_char.get(2)+"%' OR mots like '%"+lettres.tab_char.get(3)+"%' OR mots like '%"+lettres.tab_char.get(4)+"%' "
+ "OR mots like '%"+lettres.tab_char.get(5)+"%';");
(lettre.tab_charは、ArrayListを(文字である)の最初の選択を行います私は私の中に値をつけた後
String MY_QUERY = "SELECT temp2._id, temp2.mots FROM temp2 INNER JOIN temp ON temp2.mots = temp.mots;";
Cursor test = db.rawQuery(MY_QUERY, null);
:これは一時で組み合わせ)
私はテーブル「TEMP2」と「一時」の間に参加するかを作るために使用される文字が含まれていますリストビュー。
これは動作しますが、実際には非常に遅いです。お手伝いできますか?
まず、ありがとうございます。実際には、アナグラムに基づいてゲームをデザインしたいと思います.6文字あり、これらの文字でリメイクできるすべての単語を入力する必要があります(文字は時間通りにしか使用できません)。 私は6文字のセリフを生成するアルゴリズムを持っています。 私はこのアルゴリズムで生成した単語テーブル(379 000エントリ)と組み合わせテーブルを持っています:http://www.merriampark.com/comb.htm これらのSQLクエリは、各レベルのソリューション。 – Paul