java算法按指定数量读取集合或数组中的值
学习记录
前言:因项目需要写的这个算法,可能代码不像诗,不优雅,但总算达到需求了,请大家多多指点
代码如下:
@org.junit.Test
public void test(){
//指定每次输出多少数量的数据
int munber = 5;
//存放任意数量的数据
String brandIds[] = new String[177];
for (int i = 0; i<177; i++){
brandIds[i] = i+"";
}
List<String> stringList = new ArrayList<>();
//向上取值获得总循环数
int result =(int) Math.floor(brandIds.length/munber);
int count =0;
int rs = 0;
for (int j = 0; j< result+1;j++) {
String str = "";
rs = count;
count += munber;
for (int i = 0; i < brandIds.length; i++) {
//当前j 循环次数不等于总循环次数时执行下方if
if (j != result) {
if (i >= count) {
System.out.println("str:" + str.substring(0,str.length()-1));
stringList.add(str.substring(0,str.length()-1));
break;
}
if (i >= rs) {
str += brandIds[count - count + i] + ",";
}
} else {//当前j循环次数等于总循环次数时进入else,因为我们是向上取得总循环数,最后一次循环做特殊处理因为数量可能达不到我们指定的输出数量,从而导致异常
if (i >= result * munber) {
str += brandIds[count - count + i] + ",";
if (i==brandIds.length-1){
stringList.add(str.substring(0,str.length()-1));
System.out.println("str2:"+str.substring(0,str.length()-1));
}
}
}
}
}
}
效果如下: