67,513
社区成员
发帖
与我相关
我的任务
分享
public class Sample {
public static boolean validateList(List<Double> list) {
return !list.contains(0.0) && //首先要满足不存在值为0元素(否则相除肯定不满足条件)
list.stream() //用stream的map转成Stream<Boolean>流,其中两两相除位于0.8-1.2的是true,否则是false
.map(e->list.stream().filter(ee->ee!=e&&ee/e>=0.8&&ee/e<=1.2&&e/ee>=0.8&&e/ee<=1.2).count()==list.size()-1?true:false)
.filter(e->!e).count()==0; //确保转成的Stream<Boolean>流不存在false(false为0说明所有元素满足,否则说明有不满足条件的元素存在)
}
public static void main(String[] args) {
System.out.println(validateList(Arrays.asList(9.0, 8.0, 9.1, 8.1))); //这是满足条件的例子
System.out.println(validateList(Arrays.asList(10.0, 8.0, 9.1, 8.1))); //这是不满足条件的例子 10.0/8.0=1.25
}
}