如何将一个arraylist分成多个相同大小的arraylist?

时间:2017-09-09 00:45:08

标签: java android arraylist

提前感谢您的关注。 我将解释我的情况,我需要将一个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();

                    }

1 个答案:

答案 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