In this tutorial, we will see how to change object property one by one using stream api that is provided in Java 8.
So for that first we need to create POJO class. So lets create one User class and add two properties
- Name and
- Salary
User.java
package Java8;
public class User {
private String name;
private Integer salary;
public User(String name, Integer salary) {
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSalary() {
return salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
@Override
public String toString() {
return "User [name = " + name + ", salary = " + salary + "]";
}
}
Add getter, setter and toString method in User class.
Now we creating another java class where we can perform our modify operation in User object.
In following example we are changing the name of user Object from lowercase to UPPERCASE using stream.
ModifyObjectProperty.java
package Java8;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ModifyObjectProperty {
public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list.add(new User("user 1", 10000));
list.add(new User("user 2", 50000));
list.add(new User("user 3", 25000));
list.add(new User("user 4", 20000));
list.add(new User("user 5", 15000));
System.out.println("Before Changing the User Object");
System.out.println(list);
// Changing the User object name property
// from lowercase to UPPERCASE using stream
List<User> newList = list.stream()
.map(user -> new User(user.getName().toUpperCase(), user.getSalary()))
.collect(Collectors.toList());
System.out.println("After Changing the User Object");
System.out.println(newList);
}
}
Output :-
Before Changing the User Object
[User [name = user 1, salary = 10000], User [name = user 2, salary = 50000],
User [name = user 3, salary = 25000], User [name = user 4, salary = 20000],
User [name = user 5, salary = 15000]]
After Changing the User Object
[User [name = USER 1, salary = 10000], User [name = USER 2, salary = 50000],
User [name = USER 3, salary = 25000], User [name = USER 4, salary = 20000],
User [name = USER 5, salary = 15000]]
Explanation :-
We are modifying the User name form lower to upper using java 8 stream map() method. We are storing modified User names in newList list.
Learn more about java 8 stream map() method.
In above example we are string modified value in new list. but what if we want to change in same list.
So we can use forEach() method for that. Let's see how we can done that.
ModifyObjectProperty.java
package Java8;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ModifyObjectProperty {
public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list.add(new User("user 1", 10000));
list.add(new User("user 2", 50000));
list.add(new User("user 3", 25000));
list.add(new User("user 4", 20000));
list.add(new User("user 5", 15000));
System.out.println("Before Changing the User Object");
System.out.println(list);
// Changing User object salary property as
// adding 500 using forEach
list.forEach(user -> user.setSalary(user.getSalary() + 500));
System.out.println("After Changing the User Object");
System.out.println(list);
}
}
Output :-
Before Changing the User Object
[User [name = user 1, salary = 10000], User [name = user 2, salary = 50000],
User [name = user 3, salary = 25000], User [name = user 4, salary = 20000],
User [name = user 5, salary = 15000]]
After Changing the User Object
[User [name = user 1, salary = 10500], User [name = user 2, salary = 50500],
User [name = user 3, salary = 25500], User [name = user 4, salary = 20500],
User [name = user 5, salary = 15500]]
In above example, we are adding 500 in salary property for modify object using forEach. We are modifying salary property in same list.
Happy Coding.
See other Java 8 Stream api and its method with examples :-
- Java 8 Stream Filter() Method with Examples
- Java 8 Stream Collect() Method with examples
- Java 8 Reduce() Method with examples
- Intermediate and Terminal Operation in Java 8 Stream API
- Predicate In Java 8 with Examples
Comments
Post a Comment