[英]Saving data in ArrayList of objects
我试图弄清楚如何在对象的ArrayList
中保存一些数据,但是我是Java新手,所以遇到了一些麻烦...
所以可以说我们有一个该对象的ArrayList
:
public class AppListModel(){
private String AppName;
private String packageName;
public AppListModel(){
}
public String getAppName() {
return appName;
}
public String getPackageName() {
return packageName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
}
并且在difrent文件中有此对象的arrayList:
public class ProfilesList {
private ArrayList<AppListModel> profilesList = new ArrayList<AppListModel>();
public ProfilesList(){
}
public ArrayList<AppListModel> getProfilesList() {
return profilesList;
}
public void setProfilesList(ArrayList<AppListModel> profilesList) {
this.profilesList = profilesList;
}
public void addProfilesList(AppListModel appListModel) {
this.profilesList.add(appListModel);
}
}
是否可以将数据存储在一个文件中,例如:
AppListModel appList = new AppListModel();
appList.setAppName("ssss");
appList.setPackageName("ddddd");
ProfilesList list = new ProfilesList();
list.addProfilesList(appList);
然后从另一个文件访问这些数据,例如:
ArrayList<AppListModel> list = new ArrayList<AppListModel>();
ProfilesList profList = new ProfilesList();
list = profList.getProfilesList();
现在,上一个代码示例中的ArrayList
命名列表是否包含那些先前创建的数据?
如果没有,如何实现? 我需要使用soma数据库或其他东西吗?
我想用它来处理android中不同活动之间的ArrayList
。
谢谢!
“ new”关键字创建对象的新实例(在这种情况下,是一个集合,一个空的)。
如果要访问之前创建的同一实例,则需要将其“传递”到需要的位置。 假设您的用法代码包装在一个函数中:
void doSomething(ProfilesList profList) {
ArrayList<AppListModel> list = new ArrayList<AppListModel>();
list = profList.getProfilesList();
//do something with list...
}
然后,您可以通过执行以下操作来调用此代码:
AppListModel appList = new AppListModel();
appList.setAppName("ssss");
appList.setPackageName("ddddd");
ProfilesList list = new ProfilesList();
list.addProfilesList(appList);
doSomething(list);
您在此处list
:
AppListModel appList = new AppListModel();
appList.setAppName("ssss");
appList.setPackageName("ddddd");
ProfilesList list = new ProfilesList();
list.addProfilesList(appList);
将与此处的list
:
ArrayList<AppListModel> list = new ArrayList<AppListModel>();
ProfilesList profList = new ProfilesList();
list = profList.getProfilesList();
每当您创建new ProfilesList()
它就与其他任何都不相同。
public void anyMethod() {
//list1 is not the same as list2
ArrayList<AppListModel> list1 = new ArrayList<AppListModel>();
ArrayList<AppListModel> list2 = new ArrayList<AppListModel>();
//list3 will be same as list1
ArrayList<AppListModel> list3 = list1;
//adding an AppListModel to list1
AppListModel appList = new AppListModel();
list1.add(appList);
list1.getProfilesList().isEmpty(); //false because it has appList
list2.getProfilesList().isEmpty(); //true
list3.getProfilesList().isEmpty(); //false because it refers to list1 which has appList
}
上面显示了ArrayList
之间的区别。
“ new”将始终创建所需对象的新实例。
您想查找SQLite。 这就是您在android中存储数据的方式。 http://developer.android.com/training/basics/data-storage/databases.html
一旦将其保存在本地电话的数据库中,您就可以随时检索数据并将其添加到所需的阵列列表中。 但是,对数据的任何更改都需要再次提交到数据库,以便将其永久存储。
上一个代码示例中的ArrayList命名列表是否包含那些先前创建的数据?
如果使用此代码:
ProfilesList profList = new ProfilesList();
ArrayList<AppListModel> list = profList.getProfilesList()
由于创建了ProfilesList
对象的新实例,因此不会获得任何以前保存的数据。 您需要使用相同的实例来取回数据
ProfilesList profList = new ProfilesList();
profList.addProfilesList(...);
//...
//This would then return the correct data
ArrayList<AppListModel> list = profList.getProfilesList();
如果您需要更多持久性存储,我建议您使用SQLite数据库
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.