早教吧 育儿知识 作业答案 考试题库 百科 知识分享

java中对List数据递归筛选一个list中有200个数据,先对200个数据进行算术平均得到平均值avg,按平均值的正负20%得到最大值与最小值,即avg*(1-0.2)

题目详情
java中对List数据递归筛选
一个list中有200个数据,先对200个数据进行算术平均得到平均值avg,按平均值的正负20%得到最大值与最小值,即 avg*(1-0.2)<=标准值<=avg*(1+0.2),将标准值不在此范围内的值剔除,得到新的list数据,再进行算术平均得到新的avg,以此递归操作,直到无法剔除为止(连续递归两次的list无变化)。如果结果被全部剔除,则取上一次循环的值。请问这样的需求需要怎样实现,请给个实现思路,或给个小例子最好。
▼优质解答
答案和解析
这个很好写,无非就是list读写麻烦点,写一个递归方法
public list findavg() {
for(int i=0;list){
sum += list[i];
}
avg=sum/list.size();
for(int i=0;list){
avg*(1-0.2)<=list[i]<=avg*(1+0.2)
list2.add(list[i]);
}
return list2;
}