我需要加载Account类的实例
class Account {
private String firstName;
private String lastName;
private String email;
...
}
到内存中以便快速访问。我可以使用Java集合类来存储数据。我还需要搜索数据。由于电子邮件地址需要是唯一的,我正在考虑使用带有电子邮件地址的地图作为密钥。如果需要搜索名字和姓氏,这种方法将无济于事。我可以使用过滤器搜索名字和姓氏。
有更好的方法吗?
答案 0 :(得分:1)
您可以维护多个不同的Java集合,或使用具有更好搜索功能的null_resource或in-memory databases。
但是,另见Java object databases。这很有趣。
答案 1 :(得分:0)
如果要搜索内容,则需要使用像Data Store这样的索引集合: https://github.com/jparams/data-store
示例:
Store<Account> store = new MemoryStore<>() ;
store.add(new Account("Ed", "Smith", "ed.smith@gmail.com"));
store.add(new Account("Fred", "Smith", "fred.johnson@hotmail.com"));
store.add(new Account("Freda", "Pinto", null));
store.index("firstName", Account::getFirstName);
store.index("lastName", Account::getLastName);
Account ed = store.getFirst("firstName", "Ed");
Account smiths = store.get("lastName", "Smith");
使用数据存储,您可以创建不区分大小写的索引和所有排序。如果您正在进行大量查找,那么您肯定希望使用这样的库。