学生プロジェクトの一環として、私は大規模なデータベースを構築しています。これには、理論的には何百万ものオブジェクトが含まれる可能性があります。
ファーストネームから始めます (つまり、Person fName = "John")。
私の計画は、「ジョン」をハッシュコードに変換し、ハッシュコードを整数に変換してから、マップに - として格納することです (整数比較が高速であるため)。
ここに私の問題があります-反復を高速化するために、名前の最初の文字に応じてアクセスされる個別の静的マップが必要です。お気に入り
public class FirstNameList {
private static Map<Integer, String> a = new HashMap<Integer, String>();
private static Map<Integer, String> b = new HashMap<Integer, String>();
private static Map<Integer, String> c = new HashMap<Integer, String>();
// etc
public void addFName(String word) {
if (word.length() == 0)
throw new IllegalArgumentException("No name entered");
word = word.toLowerCase();
char x = word.charAt(0);
Integer i = word.hashCode();
x-correctMap.put(i, word);
}
ただし、正しいリストを選択するために 26 個の if ステートメントを使用するのはあまり効率的ではありません。正しいマップを選択する方法を知っている人はいますか? それとも、一般的により良いアイデアですか?