当前位置: 首页 > 知识库问答 >
问题:

Java:从块中的数组列表创建数组的有效方法

林项明
2023-03-14

我不是本地JAVA程序员。我正在为web服务API创建一个客户端。API基本上需要一个数组参数。

我正在解析一个XML文件,创建记录,然后使用此API进行批量插入。

问题是这个API一次只能插入200条记录,这意味着我的数组在调用时只能有200条或更少的记录。

由于我不知道预先有多少条记录,所以我将我的记录存储在ArrayList中,然后使用将其转换为Array。ToArray()

APIObject[] invoiceArray = invoiceObjectlist.toArray(new APIObject[invoiceDetailObjectlist.size()]);

现在,由于API带来的200个限制问题,我需要以200个为一组创建这些数组,直到插入ArrayList中的所有记录。

现在我在想我可以遍历数组列表并维护一个计数器。当计数器=200时,我可以创建一个新数组并通过维护索引指针将所有元素插入到该点,或者我可以将元素推送到每200条记录的新数组列表中并将其转换为数组并执行插入。

在JAVA中,什么是更好的优雅/有效的方法来做到这一点?

谢谢。

共有1个答案

松高歌
2023-03-14
List<APIObject[]> chunks = new ArrayList<APIObject[]>();
for (int i = 0; i < bigList.size(); i += 200) {
  APIObject[] chunk = bigList.subList(i, Math.min(bigList.size(), i + 200))
    .toArray(new APIObject[200]);
  chunks.add(chunk);
}
 类似资料:
  • 问题内容: 我有一个像这样的清单: 但是更大了,所以我需要一种有效的方法来使它变成像这样的树: 我不能使用诸如嵌套集之类的东西,也不能使用诸如becoas之类的东西,因为我可以在数据库中添加左右值。有任何想法吗? 问题答案: 哦,这就是我解决的方法:

  • 问题内容: 我想要创建一个arraylist数组,如下所示: 但是它没有编译。我怎样才能做到这一点? 问题答案: 根据Oracle文档: “你不能创建参数化类型的数组” 相反,你可以执行以下操作: 正如汤姆·霍廷(Tom Hawting)的建议-定位线一样,最好这样做:

  • 问题内容: 我正在尝试在表中插入数组,但需要将列表转换为SQL Array类型。我正在使用该方法,但出现异常。 我需要传递一个类型名称,但是我不知道这是什么,而且我总是会遇到异常。该数组来自VARCHAR。 我该如何解决插入数组? 代码 堆栈跟踪 问题答案: 使用“ varchar”而不是“ VARCHAR”。参见http://grepcode.com/file/repo1.maven.org/m

  • 问题内容: 我已经开发了像这样的数组列表 现在我的问题是:如果我想从列表中删除“ 8”,哪种方法更好? 第一种方式: 第二种方式: 现在,请从性能的角度建议其中哪一个效率更高,速度更快,并且还有其他任何类似于内置函数的方法,通过使用它,我们可以删除重复项而无需进行过多迭代。 问题答案: 在性能方面,它们应该相似。你测试了吗 如果要使用内置方法,则可以达到类似的性能(通过测试确认): 最后,如果您想

  • 我有一个的数组,它们都有一个的列表: 我想创建一个包含所有变量的列表。我今天是这样做的: 我尝试过此操作,但它返回给我一个,而我想要一个,其中附加了列表的所有元素(使用):

  • 问题内容: 我如何用对象填充ArrayList,而内部的每个对象都不相同? 问题答案: