Java 在Android应用程序中存储和访问具有相应键值的字符串
我想静态存储一些数据,这些数据将根据用户选择进行访问。 例如,我将有多个(大约200行)格式为Name、Type、Shortname的数据。在用户界面中,我只想显示名称和类型,然后单击其中一个,我想返回第三个值(shortname) 在像我这样使用数据时,什么样的数据结构或类型最适合我以获得最高性能Java 在Android应用程序中存储和访问具有相应键值的字符串,java,android,Java,Android,我想静态存储一些数据,这些数据将根据用户选择进行访问。 例如,我将有多个(大约200行)格式为Name、Type、Shortname的数据。在用户界面中,我只想显示名称和类型,然后单击其中一个,我想返回第三个值(shortname) 在像我这样使用数据时,什么样的数据结构或类型最适合我以获得最高性能 编辑:我已经知道如何实现ListView,我只是想了解一些关于如何存储数据以便从用户界面快速访问的指导(不是完整的实现),而不需要做太复杂的事情。我认为您应该使用realm来存储数据,使用起来并不复
编辑:我已经知道如何实现ListView,我只是想了解一些关于如何存储数据以便从用户界面快速访问的指导(不是完整的实现),而不需要做太复杂的事情。我认为您应该使用realm来存储数据,使用起来并不复杂。看看这个。问题是,您可以在第一次运行应用程序时使用值初始化数据库
private void realmConfiguration() {
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this)
.initialData(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
for(int i = 0 ; i < 10; ++i){
Data data = realm.createObject(Data.class,i);
data.setData("Test "+i);
}
}
})
//TODO: only for development
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(realmConfiguration);
}
private void realmConfiguration(){
RealmConfiguration RealmConfiguration=新建RealmConfiguration.Builder(此)
.initialData(新领域.Transaction(){
@凌驾
公共void执行(领域){
对于(int i=0;i<10;++i){
Data=realm.createObject(Data.class,i);
数据。设置数据(“测试”+i);
}
}
})
//TODO:仅用于发展
.DeleteRealMifMigrationRequired()
.build();
Realm.setDefaultConfiguration(realmConfiguration);
}
另一件事是,您应该使用RecyclerView而不是ListView。在上面的链接中,还显示了如何使用RecyclerView。数据来自数据库还是始终相同(例如:来自XML)?如果数据不唯一,您可能需要添加序列号并将其添加到
HashMap
中,序列号作为键,数据作为值。如果这些记录是唯一的,您可以直接将它们放在HashSet
中(它内部使用HashMap
)。如果知道键
(假设没有哈希冲突,则常数时间为1),则在HashMap
中获取数据的速度非常快。