How to replace nested for loops with java 8 streams
What you will learn here about java stream API
- How to replace nested for loops in java
Here we will see how to replace nested for loop in java with stream API. It is very easy to replace nested for loops with stream API by using forEach inside the forEach
How to replace nested for loops in java
Sample program for replacing nested for loops in java with stream API is given below.
import java.util.ArrayList; import java.util.List; public class Movies { String actor; Listmovies; public static void main(String[] args) { List ActorsMovies=new ArrayList<>(); //Adding first actor name and movies Movies M1=new Movies(); M1.setActor("Ajay devgun"); List movieNames=new ArrayList (); movieNames.add("Singham"); movieNames.add("Tanhaji");movieNames.add("Rascals"); M1.setMovies(movieNames); ActorsMovies.add(M1); //Adding second actor name and movies Movies M2=new Movies(); M2.setActor("SRK"); List movieNames2=new ArrayList (); movieNames2.add("DDLJ"); movieNames2.add("Badshaha");movieNames2.add("Zero"); M2.setMovies(movieNames2); ActorsMovies.add(M2); System.out.print("------------Old Way of nested for -------------"); for(int actor=0;actor<ActorsMovies.size();actor++) { System.out.print("\n"+ActorsMovies.get(actor).getActor() +" -> "); for(int movie=0;movie<ActorsMovies.get(actor).getMovies().size();movie++) { System.out.print(" "+ActorsMovies.get(actor).getMovies().get(movie)); } } System.out.print("\n\n------------nested for with stream ------------"); ActorsMovies.stream() .forEach(actor->{ System.out.print("\n"+actor.getActor()+" -> "); actor.getMovies().stream() .forEach(movie->System.out.print(" "+movie)); }); } //getters and setters of instance variables public String getActor() { return actor; } public void setActor(String actor) { this.actor = actor; } public List getMovies() { return movies; } public void setMovies(List movies) { this.movies = movies; } }
OUTPUT
————Old Way of nested for ————-
Ajay devgun -> Singham Tanhaji Rascals
SRK -> DDLJ Badshaha Zero
————nested for with stream ————
Ajay devgun -> Singham Tanhaji Rascals
SRK -> DDLJ Badshaha Zero