美文网首页
数组分割

数组分割

作者: 离别刀 | 来源:发表于2018-08-16 13:32 被阅读0次

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
 * Created by Administrator on 2019-6-22 0022.
 */
public class GroupUtils {

    /**
     * 按照多少页分成多少组
     * @param list
     * @param peer
     * @param shuffle
     * @return
     */
    public static List<List> groupArray(List list, int peer, boolean shuffle){
        if(shuffle==true){
            Collections.shuffle(list);
        }
        if(peer==0){
            peer=1;
        }
        Double per= new Double(peer);
        int c = new Double(Math.floor(list.size()/per)).intValue();
        List<List> newList= new ArrayList<>();
        if(c==0){
            newList.add(list);
            return newList;
        }
        for(int i=0;i<peer;i++){
            int step= new Double(i*c).intValue();
            if(i<peer-1){
                newList.add(list.subList(step,step+c));
            }else {
                newList.add(list.subList(step,list.size()));
            }
        }
        return newList;
    }

    /**
     * 按照每页多少个分成多少组
     * @param list
     * @param peerCount
     * @param shuffle
     * @return
     */
    public static List<List> groupArrayByCount(List list, int peerCount, boolean shuffle){
        List<List> newList= new ArrayList<>();
        if(shuffle==true){
            Collections.shuffle(list);
        }
        if(list.size()<=peerCount){
            newList.add(list);
            return newList;
        }
        int page= (int) Math.ceil(list.size()/new Double(peerCount));
        for(int i=0;i<page;i++){
            int from= i*peerCount;
            if(peerCount+from+1>list.size()){
                newList.add(list.subList(from,list.size()));
            }else {
                newList.add(list.subList(from,peerCount+from));
            }

        }
        return newList;
    }

//    public static void main(String[] args) {
//        List<List> lists= new ArrayList<>();
//        List<Integer> strings= new ArrayList<>();
//        for (int i = 0; i <1000 ; i++) {
//            strings.add(i);
//        }
//        lists= groupArrayByCount(strings,333,false);
//        System.out.print(lists);
//    }
}

相关文章

  • 10-Python-NumPy数组分割

    数组分割相关函数介绍 函数数组及操作split将一个数组分割为多个子数组hsplit将一个数组水平分割为多个子数组...

  • numpy数组的合并与分割

    数组的合并 数组的分割

  • js数组题目

    js面试题 js数组 一、按要求分割数组 将"js,数组,分类"字符串数组以/分割 for循环累加 join()把...

  • 分割数组

    把一个数组arr按照指定的数组大小size分割成若干个数组块。 例如:chunk([1,2,3,4],2)=[[1...

  • php 字符串分割成数组、数组分割成字符串

    数组按照,分割成字符串 输出'jianshu,coder,ZB' 字符串按照-分割成数组 输出array ( 0 ...

  • flutter 记录字符串相关

    以逗号分割的字符串转数组list = string.split(',');数组转以逗号分割的字符串string =...

  • Chunky Monkey

    猴子吃香蕉, 分割数组(猴子吃香蕉可是掰成好几段来吃哦)把一个数组arr按照指定的数组大小size分割成若干个数组...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 数组分割

  • js分割数组

网友评论

      本文标题:数组分割

      本文链接:https://www.haomeiwen.com/subject/xxonbftx.html