如果在应用程序的动态行为期间需要它们,存储大量值对的最佳方法是什么?在内存中(例如 LinkedHashMap)还是 SQLite DB?我有超过 4000 行的 personID 和 personName,我需要一个 EditText 和一个 Spinner。如果我在 EditText 中输入正确的 personID,Spinner 应该跳转到正确的 personName,但 Spinner 也应该包含所有的 personNames。
目前我已经通过以下方式实现了“内存中”的解决方案,因为一个简单的数组不能大于 64k。代码当然是生成的。我也尝试在 XML 中定义数组,但它也有相同的限制。
public enum CompPeople {
INSTANCE;
public LinkedHashMap<Short, String> peopleIDs = new LinkedHashMap<Short, String>();
public void initialize() {
peopleIDs = new LinkedHashMap<Short, String>();
setPeople1();
setPeople2();
setPeople3();
setPeople4();
}
public void setPeople1() {
peopleIDs.put(new Short((short) 1011), "John Doe");
peopleIDs.put(new Short((short) 1012), "Jack Knight");
peopleIDs.put(new Short((short) 1013), "Sue Doe");
...
}
public void setPeople2() {
...
}
public void setPeople3() {
...
}
public void setPeople4() {
...
}
}
如果 SQLite 方式会更好,有没有比这里描述的在第一次运行应用程序时初始化数据库更好的解决方案?: http ://www.reigndesign.com/blog/using-your-own-sqlite-数据库在-android-applications/
提前致谢!