[英]Use java Stream and Lambda expressions for nested loop
我想將以下代碼替換為Streams和lambda表達式
List < Obj > list=service.getList();
double value = 0.0;
for(int i=0;i<100;i++){
if((i+12)<100){
for(int j=i;j<i + 12 ; j++){
value=1+value*Double.parseDouble(list.get(j).getValue())
}
}
}
}
有什么最好的辦法嗎?
您可以這樣做:
List<Obj> list = service.getList();
double value = IntStream.range(0, 100 - 12)
.flatMap(i -> IntStream.range(i, i + 12))
.mapToDouble(j -> Double.parseDouble(list.get(j).getValue()))
.reduce(0, (acc, e) -> 1 + acc * e);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.