Java 部分arraylist到3个字符串部分

Java 部分arraylist到3个字符串部分,java,arraylist,Java,Arraylist,我正在尝试将大小为3n的arrayList拆分为3部分(每个部分的大小为n),但我只得到了第一部分。我怎样才能解决这个问题 [1,2,3,4,5,6,7,8,9] ==> [1,2,3][4,5,6][7,8,9] 谢谢你的帮助 List<RootCreator> mainSublist = new ArrayList<RootCreator>(); int number = mainList.size()/3; for(int i= 0 ; i < ma

我正在尝试将大小为
3n
arrayList
拆分为3部分(每个部分的大小为n),
但我只得到了第一部分。我怎样才能解决这个问题

[1,2,3,4,5,6,7,8,9]  ==> [1,2,3][4,5,6][7,8,9]
谢谢你的帮助

List<RootCreator> mainSublist = new ArrayList<RootCreator>();
int number = mainList.size()/3;
for(int i= 0 ; i < mainList.size()/3; i++){
    int index = i*3 ;           
    List<RootCreator> sublist =  mainList.subList(0, index);
    mainSublist.addAll(sublist);
}
List mainSublist=new ArrayList();
int number=mainList.size()/3;
对于(int i=0;i
List mainSublist=mainList.subList(0,mainList.size()/3);
您可以这样使用-

static <T> List<List<T>> split(List<T> list, int n) {

    List<List<T>> parts = new ArrayList<List<T>>();
    int size = list.size();

    for (int index = 0; index < size; index += n) {
        parts.add(new ArrayList<T>(
            list.subList(index, Math.min(size, index + n)))
        );
    }
    return parts;
}
静态列表拆分(列表,int n){
列表部件=新的ArrayList();
int size=list.size();
对于(int index=0;index
主要问题是:始终使用第一个参数0调用mainList.subList()

    List<RootCreator> mainSublist = new ArrayList<RootCreator>();
    int number = mainList.size()/3;
    int first = 0;
    for(; first < mainList.size() - number; first+=number){
        mainSublist.addAll(mainList.subList(first, first + number));
    }
    mainSublist.addAll(mainList.subList(first));
List mainSublist=new ArrayList();
int number=mainList.size()/3;
int first=0;
对于(;first
你能把你的问题改写一下,让它清楚地表明你想要达到什么目的吗?@TimBiegeleisen:我添加了一个简单的方法来澄清它。你想把这3个独立的
列表存储在哪里?结果似乎只有一个位置。@TimBiegeleisen:在这个arrayList
Main子列表中,最后一行无法编译。
    List<RootCreator> mainSublist = new ArrayList<RootCreator>();
    int number = mainList.size()/3;
    int first = 0;
    for(; first < mainList.size() - number; first+=number){
        mainSublist.addAll(mainList.subList(first, first + number));
    }
    mainSublist.addAll(mainList.subList(first));