$show=/label

Java 8 ArrayList forEach Examples

SHARE:

A quick guide to ArrayList forEach() method in Java 8. forEach() method iterates the value by value until it reaches the last value. forEach() takes Consumer functional interface as argument.

1. Introduction


In this tutorial, You'll learn how to iterate ArrayList using the forEach() method in Java 8. Now ArrayList comes up with a handy utility method to traverse all the elements of List using arraylist foreach.

forEach() is added as part of java 8 changes.

Java 8 ArrayList forEach() Examples


Read more articles on ArrayList.

forEach() method iterates the values till last value or it throws an exception.

This is a complete replacement for the traditional Iterator concept. Internally, It does the looping around the list values.

First, We will see the syntax, its internal implementation, and examples to use forEach() method.

Iterating List, Map or Set with forEach() method

2. Java 8 ArrayList forEach() Syntax

Java 8 ArrayList forEach()

The below is the syntax from api documentation which takes the Consumer functional interface.

[public void forEach​(Consumer<? super E> action)]

NullPointerException - if the specified action is null

If consumer action is null then it throws runtime exception saying "NullPointerException".

3. forEach() Internal Code


First of all, forEach() is a overridden method and runs the for loop and calls consumer.accept() method for each value.


@Override
public void forEach(Consumer<? super E> action) {
    Objects.requireNonNull(action);
    final int expectedModCount = modCount;

    @SuppressWarnings("unchecked")
    final E[] elementData = (E[]) this.elementData;

    final int size = this.size;
    for (int i=0; modCount == expectedModCount && i < size; i++) {
        action.accept(elementData[i]);
    }

    if (modCount != expectedModCount) {
        throw new ConcurrentModificationException();
    }
}

If the original ArrayList is modified within the forEach() method then it will throw ConcurrentModificationException

This seems like a iterator() but it reduces the lots of boilerplate coding for checking it.hasNext() or it.next() methods.

4. Example to print the values of ArrayList using forEach() Method

First created a List with String type values and added few fruit names to it.

Next, invoking for each method on the list object and passing the Consumer implementation to it.
Inside the consumer just add "System.out.println()" statement to print the values.

package com.javaprogramto.java8.arraylist;

import java.util.ArrayList;
import java.util.List;

public class ArrayListForEach {

    public static void main(String[] args) {

        List<String> freshFruites = new ArrayList<>();

        freshFruites.add("tomato");
        freshFruites.add("potato");
        freshFruites.add("Beans");

        freshFruites.forEach( fruitName -> System.out.println(fruitName));
    }
}

Output:

[tomato
potato
Beans]

5. Example to convert the String to Upper case using forEach() method

The below program to convert all list values into upper case.

List<String> names = new ArrayList<>();
names.add("rama");
names.add("sita");

Consumer<String> upperCase = string -> System.out.println(string.toUpperCase());

names.forEach(upperCase);

Output:

[RAMA
SITA]

6. Example To Throw ConcurrentModificationException with forEach()

Let us try to add a new vegetable to the list from the consumer logic. In this case, mod count and the expected mod count will be mismatched. Hence, forEach() will throw ConcurrentModificationException.

List<String> freshVegs = new ArrayList<>();

freshVegs.add("tomato");
freshVegs.add("potato");
freshVegs.add("Beans");

freshVegs.forEach(fruitName -> {
    System.out.println(fruitName);
    freshVegs.add("Bitter Guard");
});

Output:

[tomato
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList.forEach(ArrayList.java:1260)
at com.javaprogramto.java8.arraylist.ArrayListForEach.main(ArrayListForEach.java:17)]

It is good practice to avoid original underlying modification inside the forEach() method which works similarly to the Iterator looping.

7. Example To Throw NullPointerException with forEach()

If we pass the consumer as null then it throws NullPointerException. If you know that you are going to pass null to it then add a null check before forEach() method invocation. It is a good practice not to call forEach() incase the consumer is null.

Otherwise, as a result it produces the exception.

// NullPointerExceptionfreshVegs.forEach(null);
names.forEach(null);

Output:

[Exception in thread "main" java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at java.util.ArrayList.forEach(ArrayList.java:1251)
at com.javaprogramto.java8.arraylist.ArrayListForEach.main(ArrayListForEach.java:30)]

8. Java 8 ArrayList forEach() Examples Full Example

Finally, Putting together all the examples in single program.

package com.javaprogramto.java8.arraylist;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;

public class ArrayListForEach {

    public static void main(String[] args) {

        List<String> freshVegs = new ArrayList<>();

        freshVegs.add("tomato");
        freshVegs.add("potato");
        freshVegs.add("Beans");

        freshVegs.forEach(fruitName -> {
            System.out.println(fruitName);
            // uncomment to throw ConcurrentModificationException
            freshVegs.add("Bitter Guard");
        });

        List<String> names = new ArrayList<>();
        names.add("rama");
        names.add("sita");

        Consumer<String> upperCase = string -> System.out.println(string.toUpperCase());

        names.forEach(upperCase);

        // NullPointerException        freshVegs.forEach(null);
        names.forEach(null);
    }
}

Java 8 ArrayList forEach() Examples Full Example

9. Conclusion

In this article and in conclusion, You've seen how to use the ArrayList forEach() method with examples.

And also seen all possible exceptions thrown by this method at runtime and how to handle each.

Shown how it is implemented internally.

All the code is shown in this article is over GitHub.

You can download the project directly and can run in your local without any errors.



If you have any queries please post in the comment section.

COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,31,ArrayList,16,Arrays,2,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,4,Collections,20,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,5,Core Java,73,Corona India,1,Create,2,CSS,1,Date,2,Date Time API,3,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,9,Float,1,Font,1,For examples,1,For loop examples,1,For Loop in Java,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Inner for loops,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,28,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,java 5 For loop,1,Java 8,48,Java 9,1,Java Design Patterns,1,Java Files,1,Java for loop,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Mac OS,2,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,Nested for loop,1,Nested for loop examples,1,New Features,1,Operations,1,Optional,4,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Stream,3,Streams,11,String,48,String Programs,8,String Revese,1,Swing,1,System,1,Tags,1,Threads,8,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: Java 8 ArrayList forEach Examples
Java 8 ArrayList forEach Examples
A quick guide to ArrayList forEach() method in Java 8. forEach() method iterates the value by value until it reaches the last value. forEach() takes Consumer functional interface as argument.
https://1.bp.blogspot.com/-_ryH2qVmUgU/XrpEHi-nhFI/AAAAAAAACtY/LAZjV6g8yVo-zsYXFYG1zDHNDj-z7miWgCLcBGAsYHQ/s640/Java%2B8%2BArrayList%2BforEach%2528%2529%2BExamples.png
https://1.bp.blogspot.com/-_ryH2qVmUgU/XrpEHi-nhFI/AAAAAAAACtY/LAZjV6g8yVo-zsYXFYG1zDHNDj-z7miWgCLcBGAsYHQ/s72-c/Java%2B8%2BArrayList%2BforEach%2528%2529%2BExamples.png
JavaProgramTo.com
https://www.javaprogramto.com/2020/05/java-8-arraylist-foreach.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2020/05/java-8-arraylist-foreach.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content