私はJavaが初めてで、学習プロジェクトとして、ユーザーが自分自身をテストするだけでなくエントリを検索できるように、小さな語彙アプリケーションをプログラムしたいと考えています。ただし、これに適したデータ構造を見つけるのに苦労しており、過去数日間グーグルで検索した後でも、まだ途方に暮れています。
語彙オブジェクトについて私が考えていることは次のとおりです。
import java.io.*;
class Vocab implements Serializable {
String lang1;
String lang2;
int rightAnswersInARow; // to influence what to ask during testing
int numberOfTimesSearched; // to influence search suggestions
// ... plus the appropriate setter and getter methods.
}
今回のテストでは、一見すると an
ArrayList
が最も適切であるように見えます (乱数を選択してから、テストするオブジェクトを選択します)。rightAnswersInARow
しかし、 も考慮して、少ない数の語彙をより頻繁に尋ねたい場合はどうすればよいでしょうか? 私のアプローチは、各値のオブジェクトの数をカウントし、各値に間隔を与え (たとえば、間隔rightAnswersInARow = 0
は係数 3 で膨張します)、そこからランダムに選択します。しかし、ArrayList
毎回行ってもrightAnswersInARow
、間隔を取得して決定します...要素がソートされていないため、計算された数値を正しいインデックスにどのようにマップしますか? では、TreeSet
より適切でしょうか?両方の言語でエントリを検索し、(Google の検索のように) 提案された単語を含むドロップダウン リストを追加するには、文字列をすばやく見つける必要があります (
HashMap
?)。または、2 つ以上 (言語ごとに 1 つ) を通過してTreeSet
、それらの文字で始まる最初の要素に到達し、そこから次のいくつかの要素を選択しますか? しかし、それは、どの単語が最も多く検索されたかを無視して、検索が常に同じ単語を提案することを意味します.
何を提案しますか?HashMap
それぞれの値のペアを持ち、リレーショナル データベースのようなものを手動で実装しますか?
前もって感謝します!:)