Comment obtenir la somme des valeurs d'un tableau d'objets: java8


Dans la variable "a" - je créer un double tableau, et dans "maxA", j'obtiens la somme des valeurs. Maintenant, dans la variable "b", je crée un tableau d'objets avec des valeurs doubles, maintenant je veux avoir la somme de ces valeurs en utilisant la valeur stream. merci pour l'aide

  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 = ?;
Author: Pavneet_Singh, 2016-12-29

1 answers

Utilisez mapToDouble qui retournera un DoubleStream et utilisera la fonction getter de votre classe pour obtenir la valeur de votre objet et éventuellement appliquer sum

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

getValue est un getter fonction de votre classe

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

Échantillon

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());

Sortie :

6.0
 3
Author: Pavneet_Singh, 2016-12-29 11:44:26