I have not found a simple explanation of how the consumer interface works and how to use it in a lambda expression. Hopefully I will help you guys to see how easy it is to use and you will also simplify your code.
The legacy way to create a List and loop through it :
public class ConventionalForLoop { public static void main(String[] args) { List<Integer> il = new ArrayList<>(); il.add(10); il.add(15); il.add(20); il.add(25); for (Iterator<Integer> i = il.iterator(); i.hasNext();) { Integer item = i.next(); System.out.println("For Loop Value :" + item); } } }Now with Java 8 we can use a Consumer Interface and for explanation I have declared it.
public class ShowConsumer { public static void main(String[] args) { class ConsumeInt implements Consumer<Integer> { @Override public void accept(Integer i) { System.out.println("Value From Consumer :" + i.toString()); } } List<Integer> arrl = Arrays.asList(10,15,20,25); ConsumeInt ci = new ConsumeInt(); arrl.forEach(ci); }With the lambda expression it is very simple :
public class ShowConsumer { public static void main(String[] args) { List<Integer> arrl = Arrays.asList(10,15,20,25); arrl.forEach(i -> System.out.println("Value From Consumer :" + i.toString())); } }