提前感谢您的关注。 我将解释我的情况,我需要将一个arraylist分成多个arraylist。 例如,我需要发出api的请求,我只能传递50个项目。有时我需要查询超过50个项目,因此我需要为api发出2个请求,每个请求50个项目。另一种情况是,一个包含120个项目的数组,我需要提出3个请求,在前2个我传递50个项目,在第三个和最后一个我将花费最后20个,所以我想拆分这个主要arraylist有3个数组列表中的120个项目,2个大小为50,第三个大小为20.以下是我用来做这个的代码,但我没有成功,我想知道一个更好的解决方案。谢谢!
private ArrayList<String> idsVideos = new ArrayList<>();
private ArrayList<String> testeTrab = new ArrayList<>();
private ArrayList<ArrayList<String>> videosArrays= new ArrayList<>();
for (int i =0; i < idsVideos.size(); i++){
if (testeTrab.size() == 50) {
videosArrays.add(testeTrab);
testeTrab.clear();
}
testeTrab.add(idsVideos.get(i));
idsVideos.remove(i);
}
if (testeTrab.size() > 0 && videosArrays.size() > 0) {
videosArrays.add(testeTrab);
testeTrab.clear();
}
答案 0 :(得分:2)
如果不修改列表,则不需要为每个数据块创建Group
,因为ArrayList<String>
支持方便方法List<E>
,返回“切片” “原始名单。
这意味着List<E> subList(int fromIndex, int toIndex)
将返回包含第一个idsVideos.subList(0,50)
元素的列表。现在你只需要将50之前的元素取50,直到达到最后为止50
idsVideos.size()%50 != 0