Java 当数组值更改时,将数组值存储在单独的文件中

Java 当数组值更改时,将数组值存储在单独的文件中,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,所以我运行了一些代码,运行了30万次。每次运行此代码时,它将返回多达300k的值。我当前正在将得到的结果存储在ArrayList中: List<List<Object>> thisList = new ArrayList<List<Object>(); for (int i = 0; i < 300000; i++) { thisList.add(new ArrayList<Object>()); } for (int i =

所以我运行了一些代码,运行了30万次。每次运行此代码时,它将返回多达300k的值。我当前正在将得到的结果存储在
ArrayList
中:

List<List<Object>> thisList = new ArrayList<List<Object>();
for (int i = 0; i < 300000; i++) {
    thisList.add(new ArrayList<Object>());
}

for (int i = 0; i < 300000; i++) {
    List<Object> result = someCode();
    for (Object obj : result) {
        thisList.get(obj.id).add(obj.value);
    }
}
结果包含

{obj<1, 100>, obj<0, 3>, ...}

可以使用JAXB api将其存储在XML文件中 这里有一个关于JAXB的小教程链接:

也可以使用JSON简单api将其存储在JSON文件中 下面是另一个小教程:

以下是从maven下载JAXB和json simple的链接: JAXB: json简单:


希望它对您有用

您试图解决的问题是什么?使用map而不是list为什么
map
不合适?请提供您试图实现的问题陈述。之后,我们可以尝试提供解决方案。根据您当前的代码,在创建“new ArrayList()”对象300K次时,您肯定会遇到内存问题。(300K*300K=90B,因此我可以看出您可能存在内存约束问题)
{obj<1, 100>, obj<0, 3>, ...}
List 0: obj.value1 obj.value2 obj.value3
List 1: obj.value1 obj.value4 obj.value100
...
List 300000: obj.value3 obj.value8