Print ArrayList in Java

Print ArrayList in java

[toc]

TL;DR
Let’s say you have ArrayList named `countryList`. Here are ways to print ArrayList in Java.
In case of inbuilt objects, you can use below methods.

// Print ArrayList directly
 System.out.println("Elements of ArrayList are:"+countryList);

Or

// Using Streams
 countryList.forEach(System.out::println);

Or

// Using Streams
 countryList.stream().forEach(System.out::println);

Or

// Using For each loop
// Please change String to desired data type
 System.out.println("Elements of ArrayList are:");
        for (String ele : countryList) {
            System.out.println(ele);
        }

In case, you have custom object, you can directly jump to Print ArrayList of Custom objects section.

In this post, we will see how to print ArrayList in java.

Java has Array, and it’s a very powerful data structure, but Array has its own set of limitations. The ArrayList data structure was introduced to overcome these limitations.

Before we proceed with our topic, let me quickly brief you with ArrayList.

1. ArrayList Introduction

ArrayList is an advanced version of Array, as it allows us to implement resizable arrays. Apart from this, ArrayList is a part of Java collections, and it implements Java List. Though ArrayList is the advanced version of array, ArrayList is less efficient than basic arrays in terms of time optimization.

Since we are not focusing on ArrayList Introduction, I have kept it straight and simple; if you are interested in learning more about ArrayList, you can refer ArrayList in java.

2. Ways to Print ArrayList in Java

Yes, you read it right! Fortunately, there isn’t a single way to print ArrayList elements. Though there are dozens of different ways, I’ll cover the three most popular ones in this guide.

2.1 Using for loop

In the for loop, we are iterating upto the size() of Arraylist. In each iteration, using the get() method of ArrayList, we are retrieving individual element. Finally, with the help of System.out.println statements, we will print those elements.

Have a look at the illustration:

package org.arpit.java2blog;

import java.util.ArrayList;

public class PrintArrayListMain {

    public static void main(String[] args) {
        ArrayList arl = new ArrayList<>();

        arl.add("Hyundai");
        arl.add("Kia");
        arl.add("Tesla");
        arl.add("MG");

        System.out.println("Elements of ArrayList are:");
        for (int i = 0; i < arl.size(); i++) {
            System.out.println(arl.get(i) + " ");
        }
    }
}

Output:

Elements of ArrayList are:
Hyundai
Kia
Tesla
MG

2.2 Using for-each Loop

This method is almost identical to the previous one; the only difference here is that we will use the advanced loop method. So, instead of the basic for loop, we will implement its advanced version with some different attributes.

Refer to the illustration below:

package org.arpit.java2blog;

import java.util.ArrayList;

public class PrintArrayListMain {

    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList<>();

        arrayList.add("India");
        arrayList.add("Australia");
        arrayList.add("Sudan");
        arrayList.add("Norway");

        System.out.println("Elements of ArrayList are:");
        for (String ele : arrayList) {
            System.out.println(ele);
        }
    }
}

Output:

Elements of ArrayList are:
India
Australia
Sudan
Norway

If you look at the above two methods, you will notice only a few noticeable differences, but in terms of working, both these methods are very different.

In the first method, for loop was retrieving the total size, and using that size, the index was evaluated, and later element was accessed. But in this method, every ArrayList element is directly assessed serially using a String variable.

💡 Did you know?

You can not modify ArrayList while iterating using for each loop, Otherwise it will throw Exception.

2.3 Using iterator framework

So far, we have used basic loop concepts to print the ArrayList element, but in this method, we will use the Iterators; these are a part of the java collection framework. In this method, we are going to use the following method of Interators

  • Iterator(): it returns an iterator for the ArrayList.
  • hasNext(): Performs a check on the ArrayList to find whether next element is present or not.
  • next(): Accesses the elements of ArrayList

Besides these three methods, we will also use the While loop to iterate the element checking step.

Refer to the illustration below:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.Iterator;

public class PrintArrayListMain {

    public static void main(String args[])
    {
        ArrayList arList = new ArrayList<>();

        arList.add("MacOS");
        arList.add("Windows");
        arList.add("ChromeOS");
        arList.add("Linux");
        arList.add("Ubuntu");

        System.out.println("Elements of ArrayList are:");
        Iterator arItr = arList.iterator();
        while(arItr.hasNext())
        {
            String ele = arItr.next();
            System.out.println(ele);
        }
    }
}

Output:

Elements of ArrayList are:
MacOS
Windows
ChromeOS
Linux
Ubuntu

If you don't want to use While loop in the above program, you can use the for loop.

2.4 Using ListIterator

You can also use ListIterator rather than Iterator to print ArrayList in java.

With ListIterator, you can traverse in front and back directions.
Let's see with the help of example:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class PrintArrayListMain {

    public static void main(String args[])
    {
        ArrayList citiesList = new ArrayList<>();

        citiesList.add("Delhi");
        citiesList.add("Mumbai");
        citiesList.add("Paris");
        citiesList.add("Rome");
        citiesList.add("New york");

        System.out.println("Elements of ArrayList are:");
        ListIterator listItr = citiesList.listIterator();
        while(listItr.hasNext())
        {
            String ele = listItr.next();
            System.out.println(ele);
        }

        System.out.println("Elements of ArrayList in reverse order are:");
        ListIterator listItr2 = citiesList.listIterator(citiesList.size());
        while(listItr2.hasPrevious())
        {
            String ele = listItr2.previous();
            System.out.println(ele);
        }
    }
}

Output:

Elements of ArrayList are:
Delhi
Mumbai
Paris
Rome
New york
Elements of ArrayList in reverse order are:
New york
Rome
Paris
Mumbai
Delhi

2.5 Using Stream

You can use Java 8 Stream's foreach loop to print ArrayList in java.

Here is an simple example:

package org.arpit.java2blog;

import java.util.ArrayList;

public class PrintArrayListMain {

    public static void main(String args[])
    {
        ArrayList fruitList = new ArrayList<>();

        fruitList.add("Apple");
        fruitList.add("Banana");
        fruitList.add("Grapes");
        fruitList.add("Orange");
        System.out.println("Elements of ArrayList are:");

        fruitList.stream().forEach(System.out::println);

    }
}

Output:

Elements of ArrayList are:
Apple
Banana
Grapes
Orange

2.6 Using toString()

If you just want to print ArrayList on console, you can directly print it using its reference. It will call toString() method internally of type of ArrayList(String in this example).

package org.arpit.java2blog;

import java.util.ArrayList;

public class PrintArrayListMain {

    public static void main(String args[])
    {
        ArrayList fruitList = new ArrayList<>();

        fruitList.add("Apple");
        fruitList.add("Banana");
        fruitList.add("Grapes");
        fruitList.add("Orange");
        System.out.println("Elements of ArrayList are:"+fruitList);
    }
}

Output:

Elements of ArrayList are:[Apple, Banana, Grapes, Orange]

3. Print ArrayList of Custom Objects

If you have custom object in ArrayList, then you may need to implement toString() method in the custom object to print ArrayList properly.

Let's see with the help of example:
Create a class named Student with name and age attributes.

package org.arpit.java2blog;

public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Create main class PrintArrayListStudentMain.java which we will use to print the ArrayList

package org.arpit.java2blog;

import java.util.ArrayList;

public class PrintArrayListStudentMain {

    public static void main(String[] args) {
        ArrayList studentsList=new ArrayList<>();

        Student s1=new Student("John",12);
        Student s2=new Student("Martin",11);
        Student s3=new Student("Mary",10);
        Student s4=new Student("Sneha",13);

        studentsList.add(s1);
        studentsList.add(s2);
        studentsList.add(s3);
        studentsList.add(s4);

        System.out.println("Student List:"+studentsList);
    }
}

Output:

Student List:[org.arpit.java2blog.Student@42d3bd8b, org.arpit.java2blog.Student@26ba2a48, org.arpit.java2blog.Student@5f2050f6, org.arpit.java2blog.Student@3b81a1bc]

If you notice the output, it is printing unreadble String because we did not implement toString() method in Student class.

Let's implement toString() method in Student class.

package org.arpit.java2blog.entry;

public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

Now, run PrintArrayListStudentMain.java again and you will get below output:

Student List:[Student{name='John', age=12}, Student{name='Martin', age=11}, Student{name='Mary', age=10}, Student{name='Sneha', age=13}]

As you can see, we are able to print ArrayList in readable format now.

Conclusion

That’s how you print ArrayList elements using these three different methods quite easily. Apart from these three methods, you can come up with your method, do let us know. If you run into some errors, you can drop down your queries and we will discuss them further.

That's all about how to print ArrayList in java.

[social_share share_on="facebook,twitter,linkedin,whatsapp"][post_navigator in_same_term="true"]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.