[英]part arraylist to 3 strings part
I am trying to split my arrayList
which has the size 3n
to 3 part (with size n each), 我正在尝试将大小为3n
arrayList
拆分为3个部分(每个大小为n),
but I am getting just the first one. 但是我只是第一个。 How can I fix that? 我该如何解决?
[1,2,3,4,5,6,7,8,9] ==> [1,2,3][4,5,6][7,8,9]
I appreciate any help. 感谢您的帮助。
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<RootCreator> mainSublist = mainList.subList(0, mainList.size() / 3);
You can use subList(int fromIndex,int toIndex) like this - 您可以像这样使用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;
}
The main problem: you always call mainList.subList() with first argument 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));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.