如何将对象列表存储到内存供以后使用

时间:2016-07-04 08:17:05

标签: java data-management

我正在尝试编写一个有助于管理某些数据的程序。到目前为止,用户可以使用"新文件"创建新文件。对话。在用户输入一些参数后,我创建了一个" File"的新实例。类。我现在的问题是:如何在内存中存储多个文件(如标签)。我正在考虑使用某种 ArrayList 作为" Application"中的变量。类。什么是理想的approch?

2 个答案:

答案 0 :(得分:1)

是的,您只需使用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();

答案 1 :(得分:1)

您可以使用地图将文件存储在内存中。

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; 
    }

}

然后在您的主类中,您只需使用FileStorage类来管理文件

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)。它比访问文件的列表更好。