部分arraylist到3弦部分

时间:2015-06-12 07:52:44

标签: java arraylist

我正在尝试将大小为arrayList的{​​{1}}分成3个部分(每个大小为n),但我只是第一个。我该如何解决这个问题?

3n

我感谢任何帮助。

[1,2,3,4,5,6,7,8,9]  ==> [1,2,3][4,5,6][7,8,9]

3 个答案:

答案 0 :(得分:1)

    List<RootCreator> mainSublist = mainList.subList(0, mainList.size() / 3);

答案 1 :(得分:1)

您可以像这样使用subList(int fromIndex,int toIndex) -

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;
}

答案 2 :(得分:0)

主要问题:你总是用第一个参数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));