gpt4 book ai didi

java - 随着数组值的变化,将数组的值存储在单独的文件中

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:40 25 4
gpt4 key购买 nike

所以我正在运行一些运行超过 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得到,它的值是obj.id其中指定了 indexList其中 obj.value必须存储。

随着搜索的继续,将结果存储在别处的最有效方法是什么?我的代码似乎在迭代 400 之后停止工作,很可能是由于内存不足问题。我考虑过使用一个简单的文本文档,其中每一行代表一个 List<Object>但通过一些谷歌搜索,似乎没有办法附加到特定行,所有建议似乎都指向覆盖整个文本文档。我以前从未使用过数据库,这就是我现在试图避免使用它的原因。

如果有人能给我建议我可以做什么,我将不胜感激。

编辑:是否有一种不使用数据库的方法,在每次迭代外部 for loop 之后,数据可以存储吗?例如,给定一个文件当前包含

List 0: obj.value1 obj.value2
List 1: obj.value1 obj.value4
...
List 300000: obj.value3 obj.value8

结果包含

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

其中每个对象的形式都是 obj<id, value> ,文件变为

List 0: obj.value1 obj.value2 obj.value3
List 1: obj.value1 obj.value4 obj.value100
...
List 300000: obj.value3 obj.value8

最佳答案

您可以使用 JAXB api 将其存储在 XML 文件中这是一个关于 JAXB 的小教程的链接: https://dzone.com/articles/using-jaxb-for-xml-with-java

或者您也可以使用 json-simple api 将其存储在 JSON 文件中这是另一个小教程: https://stackabuse.com/reading-and-writing-json-in-java/

这些是从 Maven 下载 JAXB 和 json-simple 的链接:JAXB:https://mvnrepository.com/artifact/javax.xml.bind/jaxb-apijson-简单:https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple

希望对你有用

关于java - 随着数组值的变化,将数组的值存储在单独的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58413460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com