如何将对象列表存储到内存中供以后使用
How to store a list of objects to memory for later use
我正在尝试编写一个程序来帮助管理一些数据。到目前为止,用户可以使用 "New File" 对话创建新文件。在用户输入一些参数后,我创建了一个 "File" class 的新实例。我现在的问题是:如何在内存中存储多个文件(如选项卡)。我正在考虑使用某种 ArrayList 作为 "Application" class 中的变量。这里的理想方法是什么?
是的,您可以简单地使用List
来存储实例
int maxfiles = 150; //You can set the length of the list, by default is 10
List<File> files = new ArrayList<File>(maxfiles);
//Your multiple files here
File file1 = null;
File file2 = null;
File file3 = null;
//Simply add it to the List
files.add(file1);
files.add(file2);
files.add(file3);
//And remove it by
files.remove(0); //Index
//Or remove all
files.clear();
您可以使用 map 将文件存储在内存中。
public class FileStorage{
Map<String, File> fileMap;
public FileStorage(){
fileMap = new HashMap<String, File>();
}
public void addNewFile(File f, String fileName){
if (fileMap.get(fileName) != null){
// Do something if you do not want to erase previous file...
else{
fileMap.put(fileName, f);
}
}
public File getStoredFile(String fileName){
File f = fileMap.get(fileName);
if (f==null){
// alert user the file is not found.
}
return f;
}
}
然后在您的主 class 中,您可以简单地使用 FileStorage class 来管理您的文件
public static void main(String[] args){
FileStorage fileStorage = new FileStorage();
// User create a new file
File file1 = new File();
fileStorage.addNewFile(file1, "file1"); // name can also be file1.getName()
[...]
// Later you can access the file
File storedFile = fileStorage.getStoredFile("file1");
}
访问或存储文件的复杂度为 O(1)。它比访问文件的列表更好。
我正在尝试编写一个程序来帮助管理一些数据。到目前为止,用户可以使用 "New File" 对话创建新文件。在用户输入一些参数后,我创建了一个 "File" class 的新实例。我现在的问题是:如何在内存中存储多个文件(如选项卡)。我正在考虑使用某种 ArrayList 作为 "Application" class 中的变量。这里的理想方法是什么?
是的,您可以简单地使用List
来存储实例
int maxfiles = 150; //You can set the length of the list, by default is 10
List<File> files = new ArrayList<File>(maxfiles);
//Your multiple files here
File file1 = null;
File file2 = null;
File file3 = null;
//Simply add it to the List
files.add(file1);
files.add(file2);
files.add(file3);
//And remove it by
files.remove(0); //Index
//Or remove all
files.clear();
您可以使用 map 将文件存储在内存中。
public class FileStorage{
Map<String, File> fileMap;
public FileStorage(){
fileMap = new HashMap<String, File>();
}
public void addNewFile(File f, String fileName){
if (fileMap.get(fileName) != null){
// Do something if you do not want to erase previous file...
else{
fileMap.put(fileName, f);
}
}
public File getStoredFile(String fileName){
File f = fileMap.get(fileName);
if (f==null){
// alert user the file is not found.
}
return f;
}
}
然后在您的主 class 中,您可以简单地使用 FileStorage class 来管理您的文件
public static void main(String[] args){
FileStorage fileStorage = new FileStorage();
// User create a new file
File file1 = new File();
fileStorage.addNewFile(file1, "file1"); // name can also be file1.getName()
[...]
// Later you can access the file
File storedFile = fileStorage.getStoredFile("file1");
}
访问或存储文件的复杂度为 O(1)。它比访问文件的列表更好。