Modify property value of the objects in list using Java 8 streams

Bhavesh Dangi

I have a list of Fruit objects in ArrayList and I want to modify fruitName to its plural name.

Refer the example:

@Data
@AllArgsConstructor
@ToString
class Fruit {

    long id;
    String name;
    String country;
}

List<Fruit> fruits = Lists.newArrayList();
fruits.add(new Fruit(1L, "Apple", "India"));
fruits.add(new Fruit(2L, "Pineapple", "India"));
fruits.add(new Fruit(3L, "Kiwi", "New Zealand"));

Comparator<Option> byNameComparator = (e1, e2) -> e1.getName().compareToIgnoreCase(e2.getName());

fruits = fruits.stream().filter(fruit -> "India".equals(fruit.getCountry()))
            .sorted(byNameComparator).collect(Collectors.toList());

List<Fruit> fruitsWithPluralNames = Lists.newArrayList();
for (Fruit fruit : fruits) {
    fruit.setName(fruit.getName() + "s");
    fruitsWithPluralNames.add(fruit);
}

System.out.println(fruitsWithPluralNames);

// which prints [Fruit(id=1, name=Apples, country=India), Fruit(id=2, name=Pineapples, country=India), Fruit(id=3, name=Kiwis, country=New Zealand)]


Do we have any way to achieve same behavior using Java 8 streams ?

Sergii Lagutin

If you wanna create new list, use Stream.map method:

List<Fruit> newList = fruits.stream()
    .map(f -> new Fruit(f.getId(), f.getName() + "s", f.getCountry()))
    .collect(Collectors.toList())

If you wanna modify current list, use Collection.forEach:

fruits.forEach(f -> f.setName(f.getName() + "s"))

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Reduce elements in a java list using Java8 streams

From Java

Split list of objects into multiple lists of fields values using Java streams

From Dev

Using Java8 Streams to create a list of objects from another two lists

From Dev

Assign unique IDs to objects using Java 8 streams

From Dev

Java 8 streams - how to filter a list and get a value

From Dev

How to Group Objects in a List into other Lists by Attribute using streams & Java 8?

From Dev

Getting only required objects from a list using Java 8 Streams

From Dev

Using Java 8 streams groupingBy on a list of list of maps?

From Dev

Java streams list of objects

From Dev

Find total of a value from List<Obj> using Java8 streams

From Dev

Split list of objects into multiple lists of fields values using Java streams

From Dev

Java 8 streams/maps/filters to modify or delete list elements on the fly

From Dev

Transform a List<Object> to a Map<String,Integer> such that the String is not a duplicate value using Java 8 Streams

From Dev

Grouping by a Map value in Java 8 using streams

From Dev

How to get a Set from a list of objects using Java Streams

From Dev

Transform a flat list to domain objects with child objects using java streams

From Dev

Filter and modify list object using java 8 streams

From Dev

How to use java 8 streams to make a new list by using another's list objects values with filter?

From Dev

Returning default list if the list is empty using java 8 Streams?

From Dev

How to match objects from list with data from map with condition and save to another map using Java 8 Streams

From Dev

Check whether list of custom objects have same value for a property in Java 8

From Dev

Processing a list of maps using Java 8 streams

From Dev

iterate List inside list using java 8 streams

From Dev

Filtering List using Java8 streams

From Dev

Find total of a value from List<Obj> using Java8 streams

From Dev

Java 8 streams - how to filter a list and get a value

From Dev

Java 8 Streams modify collection values

From Dev

How to find the sum based on some property of objects from List of objects in Java 8 using stream

From Dev

Using Java 8 lambda expressions, filter a List of objects by property of an inner list

Related Related

  1. 1

    Reduce elements in a java list using Java8 streams

  2. 2

    Split list of objects into multiple lists of fields values using Java streams

  3. 3

    Using Java8 Streams to create a list of objects from another two lists

  4. 4

    Assign unique IDs to objects using Java 8 streams

  5. 5

    Java 8 streams - how to filter a list and get a value

  6. 6

    How to Group Objects in a List into other Lists by Attribute using streams & Java 8?

  7. 7

    Getting only required objects from a list using Java 8 Streams

  8. 8

    Using Java 8 streams groupingBy on a list of list of maps?

  9. 9

    Java streams list of objects

  10. 10

    Find total of a value from List<Obj> using Java8 streams

  11. 11

    Split list of objects into multiple lists of fields values using Java streams

  12. 12

    Java 8 streams/maps/filters to modify or delete list elements on the fly

  13. 13

    Transform a List<Object> to a Map<String,Integer> such that the String is not a duplicate value using Java 8 Streams

  14. 14

    Grouping by a Map value in Java 8 using streams

  15. 15

    How to get a Set from a list of objects using Java Streams

  16. 16

    Transform a flat list to domain objects with child objects using java streams

  17. 17

    Filter and modify list object using java 8 streams

  18. 18

    How to use java 8 streams to make a new list by using another's list objects values with filter?

  19. 19

    Returning default list if the list is empty using java 8 Streams?

  20. 20

    How to match objects from list with data from map with condition and save to another map using Java 8 Streams

  21. 21

    Check whether list of custom objects have same value for a property in Java 8

  22. 22

    Processing a list of maps using Java 8 streams

  23. 23

    iterate List inside list using java 8 streams

  24. 24

    Filtering List using Java8 streams

  25. 25

    Find total of a value from List<Obj> using Java8 streams

  26. 26

    Java 8 streams - how to filter a list and get a value

  27. 27

    Java 8 Streams modify collection values

  28. 28

    How to find the sum based on some property of objects from List of objects in Java 8 using stream

  29. 29

    Using Java 8 lambda expressions, filter a List of objects by property of an inner list

HotTag

Archive