我不是本地JAVA程序员。我正在为Web服务API创建一个客户端。 API基本上需要一个数组参数。
我正在解析XML文件,创建记录,然后使用此API进行批量INSERT。
问题是这个API一次只能插入200条记录,这意味着我的阵列在拨打电话时只能有200条或更少的记录。
由于我事先并不知道有多少条记录,因此我将记录存储在ArrayList中,然后使用.ToArray()将其转换为数组
APIObject[] invoiceArray = invoiceObjectlist.toArray(new APIObject[invoiceDetailObjectlist.size()]);
现在由于API引起的200限制问题,我需要以200的块创建这些数组,直到插入了ArrayList中的所有记录。
现在我想我可以遍历数组列表并维护一个计数器。当counter = 200时,我可以创建一个新数组,并通过维护索引指针将所有元素插入到该点,或者我可以将元素推送到每200条记录的新数组列表中,并将其转换为数组并执行插入。
在JAVA中执行此操作会有什么更优雅/更有效的方法?
感谢。
答案 0 :(得分: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);
}