您的位置:首页 > 其它

将list按blockSize大小等分,最后多余的单独一份

2017-08-10 11:06 459 查看
//将list按blockSize大小等分,最后多余的单独一份  

    public static <T> List<List<T>> subList(List<T> list, int blockSize) {  

        List<List<T>> lists = new ArrayList<List<T>>();  

        if (list != null && blockSize > 0) {  

            int listSize = list.size();  

            if(listSize<=blockSize){  

                lists.add(list);  

                return lists;  

            }  

            int batchSize = listSize / blockSize;  

            int remain = listSize % blockSize;  

            for (int i = 0; i < batchSize; i++) {  

                int fromIndex = i * blockSize;  

                int toIndex = fromIndex + blockSize;  

                System.out.println("fromIndex=" + fromIndex + ", toIndex=" + toIndex);  

                lists.add(list.subList(fromIndex, toIndex));  

            }  

            if(remain>0){  

                System.out.println("fromIndex=" + (listSize-remain) + ", toIndex=" + (listSize));  

                lists.add(list.subList(listSize-remain, listSize));  

            }  

        }  

        return lists;  

    } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: