标签:
场景:
一个未知 长度的 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; } } }
标签:
原文地址:http://www.cnblogs.com/zychengzhiit1/p/5440066.html