为了账号安全,请及时绑定邮箱和手机立即绑定

当数组值发生变化时,将数组的值存储在单独的文件中

当数组值发生变化时,将数组的值存储在单独的文件中

临摹微笑 2023-11-01 22:03:52
所以我正在运行一些运行次数超过 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,该值指定必须存储在何处index。Listobj.value随着搜索的继续,将结果存储在其他地方的最有效方法是什么?我的代码似乎在迭代 400 之后停止工作,很可能是由于内存不足问题。我考虑过使用一个简单的文本文档,其中每行代表一个List<Object>,但通过一些谷歌搜索,似乎无法附加到特定行,并且所有建议似乎都指向覆盖整个文本文档。我以前从未使用过数据库,这就是为什么我现在试图避免这种情况。如果有人能给我关于我能做什么的建议,我将不胜感激。编辑:是否有一种不使用数据库的方法,在每次迭代外部之后for loop,可以存储数据?例如,给定一个文件当前包含List 0: obj.value1 obj.value2List 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.value3List 1: obj.value1 obj.value4 obj.value100...List 300000: obj.value3 obj.value8
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信