package test.transsion;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListGroupTest {
/*
* 方法一:效率比较低
* public static void main(String[] args) {
* //分组记录数
* int pageSize=5;
* // 原始数据
* List<String> list=newArrayList<String>(Arrays.asList("a","b","c","d","e","f","g","h"));
* //分组数据
* List<List<String>> listGroup=new ArrayList<List<String>>();
* //重新组装数据
* int groupSize=0;
* if(list !=null && list.size()>0){
* if(list.size()% pageSize ==0){
* groupSize=list.size()/pageSize;
* }else{
* groupSize=list.size()/pageSize+1;
* }
* }
* for(int j=0;j<groupSize;j++){
* //重构数据
* List<String> dataList=new ArrayList<>();
* int temp=pageSize*(j+1);
* if(temp>list.size()){
* temp=list.size();
* }
* for(int i=pageSize*j;i<temp;i++){
* dataList.add(list.get(i));
* }
* listGroup.add(dataList);
* }
* System.out.println(listGroup);
* }
*/
//方法二:效率比较高 备注:pageSize集合显示的分组个数,soruceDatas为集合原数据
private static List<List<String>> groupByList(List<String> sourceDatas,
int pageSize) {
// 分组集合
List<List<String>> groupLists = new ArrayList<List<String>>();
// 分组数据
List<String> tempDatas = new ArrayList<String>();
if(sourceDatas !=null && pageSize>0){
for (int i = 0; i < sourceDatas.size(); i++) {
if (i % pageSize == 0) {
if (!tempDatas.isEmpty()) {
groupLists.add(tempDatas);
}
tempDatas=new ArrayList<String>();
tempDatas.add(sourceDatas.get(i));
} else {
tempDatas.add(sourceDatas.get(i));
}
}
}
if (!tempDatas.isEmpty()) {
groupLists.add(tempDatas);
}
return groupLists;
}
public static void main(String[] args) {
// 分组记录数
int pageSize = 5;
// 原始数据
List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c",
"d", "e", "f", "g", "h"));
System.out.println(groupByList(list, pageSize));
}
}
转载于:https://blog.51cto.com/1929297/2055032