0

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

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

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

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

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

现在由于 API 提出的 200 限制问题,我需要以 200 个块创建这些数组,直到 ArrayList 中的所有记录都已插入。

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

在 JAVA 中执行此操作的更好的优雅/高效方法是什么?

谢谢。

4

1 回答 1

5
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);
}
于 2012-12-17T00:05:29.453 回答