Adam Bien's Weblog

Friday Jan 17, 2014

Java 8: From a for-loop to forEach statement

Ordinary for loops:


List<String> strings = new ArrayList<>();
for (String string : strings) {
	System.out.println("Content: " + string);
}

...can be easily translated into a forEach statement:

List<String> strings = new ArrayList<>();
strings.stream().forEach((string) -> {
	System.out.println("Content: " + string);
});

With the "functional looping style" any pre- or post-processing like filtering, grouping or even parallelization can be easily achieved:


strings.parallelStream().
        filter(s -> s.contains("java")).
        forEach((string) -> {
            System.out.println("Content: " + string);
        });
}

NetBeans 8 converts ordinary for-loops into the functional notation by hitting the ALT+ENTER key on, or by clicking on the yellow bulb.

See you at Java EE Workshops at MUC Airport or on demand and in a location very near you: airhacks.io!


NEW: Java EE 7 Testing and Quality Workshop

A book about rethinking Java EE Patterns

Comments:

small correction: yellow bulb instead of yellow bulp

Posted by asdf on January 20, 2014 at 07:38 AM CET #

When talking about ordinary for loops, I still call them "new-style forma loops". I feel like an old guy :(

Posted by Danilo Piazzalunga on January 20, 2014 at 10:30 AM CET #

I still refer to ordinary for loops as "new-style for loops", and there already are newer-style loops. I'm looking forward to developing with Java 8 and NetBeans 8!

Posted by Danilo Piazzalunga on January 20, 2014 at 10:40 AM CET #

What actually is the benefit
For "strings.stream().forEach((string) -> {"
over
"for (String string : strings) {"

Posted by Wese on January 25, 2014 at 02:18 AM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
realworldpatterns.com
...the last 150 posts
...the last 10 comments
Links
License