繁体   English   中英

我如何获取对象数组的值的总和:java8

[英]How do i get the sum of values of an Object Array :java8

在变量“ a”中,我创建了一个double精度数组,在变量“ maxA”中,我获得了值的总和。 现在在变量“ b”中,我创建一个具有双精度值的对象数组,现在我想使用stream值获得这些值的总和。 感谢帮助

  double[] a = new double[] {3.0,1.0};
  double maxA = Arrays.stream(a).sum();

  ObjectWithDoubleValue  o1 = new  ObjectWithDoubleValue (3.0);
  ObjectWithDoubleValue  o2 = new  ObjectWithDoubleValue (1.0);
  ObjectArray[] b = {o1 , o2};
  double maxB = ?;

使用mapToDouble将返回一个DoubleStream并使用类的getter函数从您的对象中获取值并最终应用sum

Arrays.stream(aa).mapToDouble(ObjectWithDoubleValue::getValue).sum()

其中getValue是您的类的getter函数

class ObjectWithDoubleValue{
    double a;
    public double getValue(){
        return a;
    }
}

样品

ObjectWithDoubleValue a1= new ObjectWithDoubleValue();
a1.a=3.0;

ObjectWithDoubleValue a2= new ObjectWithDoubleValue();
a2.a=3.0;
ObjectWithDoubleValue[] aa={a1,a2};
System.out.println(Arrays.stream(aa).mapToDouble(ObjectWithDoubleValue::getValue).sum());

输出:

6.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM