作为学生项目的一部分,我正在构建一个大型数据库,理论上它可以包含数百万个对象。
我从名字开始(即 Person fName = "John")。
我的计划是将“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 语句来选择正确的列表感觉不是很有效。有谁知道如何选择正确的地图?或者只是总体上更好的想法?