If you have a collection of objects and want to sum one of their properties using the Java Stream API, you need to use the map()
function to convert each object into the value of its property and then use the reduce()
function to sum all the values.
Here is an example where we have a Person
class with age
property, and we want to get the sum of ages for a list of Person
objects:
package org.kodejava.basic;
public class Person {
private final int age;
// Constructor, getters, and setters...
public Person(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
}
package org.kodejava.basic;
import java.util.Arrays;
import java.util.List;
public class PropertySumDemo {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person(20),
new Person(30),
new Person(40));
int totalAge = people.stream()
.mapToInt(Person::getAge)
.sum();
System.out.println(totalAge); // Outputs: 90
}
}
In this example, mapToInt(Person::getAge)
converts each Person
object in the people stream into an int
representing their age. The sum()
function then adds up these ages, resulting in the total age.
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024