List 集合中 均匀的取七个点 的值

场景:

一个未知 长度的 List 集合,可能 长度为7,10,50,100, 等等

这个时候 ,我们需要在 集合中 均匀的取七个点;

思路:

    n=6;

    int size = list.Size();

    6*count = size -7-剩余的个数;

    但是,我们怎么知道 剩余的个数,是多少??

    size-7 -剩余的个数是 6的倍数,那么,我们只要 将  (size-7)-- ,放入while循环里面,直到 是6的倍数,那么测试 ,得到的值,就是6的最大倍数了。

    

 // size = 6*num +7+剩下的数
            if(size<=7){
                result.put("period",period);
                result.put("navSeries",navlist);
                return result;
            }
            if((size-7)<6){
                //取后7数据
                for (int k=size-1;k>=0;k--){
                    resplist.add((JSONObject)navlist.get(k));
                }
            }
            if((size-7)>=6){
                int numa = size-7;
                int numb = numa;
                while ((numb%6!=0)){
                    numb--;
                }
                //size = 6*i+7+剩下的数
                int index = numb/6;
                int count=0;
                for(int i=size-1;i>=0;i--){
                    if(i==size-1){
                        resplist.add((JSONObject)navlist.get(i));
                        System.out.println(i);
                        continue;
                    }
                    count++;
                    if(count>index){
                        resplist.add((JSONObject)navlist.get(i));
                        System.out.println(i);
                        count=0;
                    }
                }

            }
原文地址:https://www.cnblogs.com/zychengzhiit1/p/5440066.html