方法:
Double ss = lotterySaleList.stream().reduce(0.0, (x, y) -> x + (y.getCount() * y.getPrice()), Double::sum);
需要是JDK 1.8,Stream接口。
看一段代码,最后输出结果是15(1*2+2*2+3*3)。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class FeildTest {
public static void main(String[] args) {
//定义list集合
List<P> list=new ArrayList<P>();
P p1= new P(1);
p1.setA(1);
p1.setB(2);
list.add(p1);
P p2= new P(2);
p2.setA(2);
p2.setB(2);
list.add(p2);
P p3= new P(3);
p3.setA(3);
p3.setB(3);
list.add(p3);
Double ss = list.stream().reduce(0.0, (x, y) -> x + (y.getA() * y.getB()), Double::sum);
System.out.println(ss);
}
}
clas