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

Java 如何将对象列表存储到内存以供以后使用,java,data-management,Java,Data Management,我正试图写一个程序,这将有助于管理一些数据。到目前为止,用户可以使用“新建文件”对话框创建新文件。在用户输入了一些参数之后,我创建了一个“File”类的新实例。我现在的问题是:如何在内存中存储多个文件(如标签)。我在考虑在“应用程序”类中使用某种ArrayList作为变量。这里理想的方法是什么?是的,您可以简单地使用列表来存储实例 int maxfiles = 150; //You can set the length of the list, by default is 10 List<

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

是的,您可以简单地使用
列表
来存储实例

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();
int-maxfiles=150//您可以设置列表的长度,默认为10
列表文件=新的ArrayList(maxfiles);
//你的多个文件在这里
文件file1=null;
文件file2=null;
文件file3=null;
//只需将其添加到列表中即可
文件。添加(文件1);
文件。添加(文件2);
文件。添加(文件3);
//然后用
删除(0)//指数
//或删除所有
clear()文件;

是的,您可以简单地使用
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();
int-maxfiles=150//您可以设置列表的长度,默认为10
列表文件=新的ArrayList(maxfiles);
//你的多个文件在这里
文件file1=null;
文件file2=null;
文件file3=null;
//只需将其添加到列表中即可
文件。添加(文件1);
文件。添加(文件2);
文件。添加(文件3);
//然后用
删除(0)//指数
//或删除所有
clear()文件;

您可以使用映射将文件存储在内存中

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

}

访问或存储文件的复杂性为O(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; 
    }

}

访问或存储文件的复杂性是O(1)。这比访问文件的列表要好。

如果您打算将对象写入磁盘(为什么?)从这里开始:不,我知道如何将它们存储到磁盘,但我需要一种在程序运行时在内存中处理它们的方法。我不明白您的问题。除非您将数据写入文件,否则您所做的一切都发生在内存中。你所有的东西都只是记忆。也许我解释得不够清楚。我的问题是:我如何存储我的对象,以便我可以在以后的时间点随时访问它们。我认为hashmap解决方案非常适合。如果你打算将对象写入磁盘(为什么?),从这里开始:不,我知道如何将它们存储到磁盘,但我需要一种在程序运行时在内存中处理它们的方法。我不明白你的问题。除非您将数据写入文件,否则您所做的一切都发生在内存中。你所有的东西都只是记忆。也许我解释得不够清楚。我的问题是:我如何存储我的对象,以便我可以在以后的时间点随时访问它们。我认为hashmap解决方案非常适合。给出的大多数操作回答都很好。对于java初学者:
maxfiles
或多或少是不相关的,它是初始数组大小/容量。你可以省去它。它与
size()
没有任何关系。大多数操作都给出了很好的答案。对于java初学者:
maxfiles
或多或少是不相关的,它是初始数组大小/容量。你可以省去它。它与
size()
无关。