Understanding ArrayList in Java With Example

Understanding ArrayList in Java With Example

ArrayList is undoubtedly of the most essential data structure in Java. You might be just starting out with the ArrayList in Java after learning about Arrays. Here let us learn about ArrayList in Java with example. Let us being our step by step guide to understanding ArrayList.

This post is going to cover almost all aspects of the ArrayList for a basic requirement. Feel free to skip to pars using the table of contents.

What is ArrayList in Java ?

It is one implementation of List interface in Java. List itself is one of the common Collection in Java. The List interface is implemented to be used like an Array. But unlike an array ArrayList can be dynamically resized at runtime.

Using ArrayList is much more convenient than the Array. As the manipulation of data becomes much more flexible and easy.

It is worth noting that the primitive data types cannot be used and their Class counterpart must be used. Like Integer for int, Float for float and so on. Now we have understood about the ArrayList in brief let us see how we can use the ArrayList.

When to use ArrayList in Java ?

If you are just starting with Java you might be wondering when should I really use a ArrayList ? The answer is that it depends.

If you understand Arrays well enough you must start using ArrayList for your day to day tasks. Maybe in Android development of Web Development.

But generally if you are doing some business problem solving. You might want to structure your data in an easily accessible way. In that case you must use the ArrayList.

However if you are writing the next gen algorithm that solves world’s hunger problem. You might be better off using a more traditional approach i.e using Array.

Once you get more comfortable with programming you will start to see pattern. Which will make you understand what to use in which situation.

That being said let us start our ArrayList.

Also Read : Learn to Implement Run Length Encoding in Java

TECHENUM

Declaring and initializing ArrayList

The syntax for declaration and initialization is pretty straight forward. Let’s look at it below.

ArrayList<String> myListOfStrings = new ArrayList<String>();

And if you want to pass a size for the ArrayList you can do that by simply as

ArrayList<String> myListOfStrings = new ArrayList<String>(32);

The 32 in the above snippet is the initial capacity. Which is useless most of the time as the array size is automatically adjusted based on the number of items.

Basic operations in ArrayList

Now that we know how to declare and initialize ArrayList. Let us see how we can add new Strings and access the stored Strings.

Add ( .add() )

For adding items to our ArrayList we can use .add() method. Let us see an example.

ArrayList<String> myListOfStrings = new ArrayList<String>(); // this line adds the String #1 to the List myListOfStrings.add("String #1"); // Add another value to the List myListOfStrings.add("Another value");

But what if you wanted to add item at specific index ?

We have a solution. Use the .add(index, value) method.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("String #1"); myListOfStrings.add("Another Value"); // add this value to first index myListOfStrings.add(0, "My First value.");

Update / Replace ( .set() )

If you want to update the value at specified index you can use the .set() method. Let us look at an example

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("String #1"); myListOfStrings.add("Another Value"); // replace the first item with new value myListOfStrings.set(0, "My First value.");

Accessing ( .get() )

How can you access the stored value ? Well let us see we have to use the .get() method provided to us.

You can use it as

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // we will have Value #3 because index starts at 0 String valueAtTwo = myListOfStrings.get(2);

Remove ( .remove() )

Now let us see how we can replace the value of our ArrayList.

You can remove value from ArrayList in two ways. One is by passing the object another is using the index of the value in the ArrayList.

Deleting item by passing object.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("String #1"); myListOfStrings.add("Another Value"); myListOfStrings.add("Another Value"); // remove the value at index 1 myListOfStrings.remove(1);

We can also pass in the same value to remove it from the ArrayList.

// Example to pass in the reference and remove this item String value1 = "String #1"; ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add(value1); myListOfStrings.add("Another Value"); // remove value by reference myListOfStrings.remove(value1);

See that I have use the same reference value passed to remove that element from the ArrayList.

Check if empty ( .isEmpty() )

Let us check if the ArrayList is empty or it has some number of value. Use the .isEmpty() method to find if the values.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // false in this example but true if there are no items boolean isMyListOfStringsEmpty = myListOfStrings.isEmpty();

Removing all items ( .clear() )

You can remove all the items from the ArrayList without having to put much effort.

Use the .clear() method and the values will be removed. An example is given below

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // will remove everything from the list myListOfStrings.clear();

Check a value ( .contains() )

Check if a value exist in the ArrayList very easily with the use of .contains(). Let us see an example

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); boolean hasMySearchValue = myListOfStrings.contains("Value #2");

Index of value ( .indexOf() )

What if we need the index of the item in the ArrayList ? You can just use the .indexOf() method to get the position.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); int indexOfMyValue = myListOfStrings.indexOf("Value #2");

It is worth noting that if no match was found the method will return -1.

The size of the ArrayList

Like in Array you have a simple way of knowing the size of the ArrayList. We use .size() method to get the total number of items in the ArrayList.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // value of total items will be 4 int totalItems = myListOfStrings.size();

Those were some basic example of ArrayList usage in Java.

Also Read : 3 Essential Datastructures in Object Oriented Programming

TECHENUM

Iterating each element of ArrayList

You might want to loop through each of the elements in the ArrayList. There are multiple ways you can do that. Here I have listed the example of using loop in ArrayList in Java.

Using foreach ( if you don’t want index )

Let us see if you want to quickly iterate through the items of the ArrayList. Index is not provided by foreach so you do not know the current item’s position.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // using foreach for (String value : myListOfStrings) { System.out.println(value); }

Using the Iterator interface

You can also use the Iterator interface to loop through each items in the ArrayList. This is not preferred over the foreach method but it is possible to do so.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); Iterator<String> iterator = myListOfStrings.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }

The iterator has multiple methods to determine if there are more elements .hasNext(). The while loop continues to run until the iterator reaches final element.

You can get element using .next() method.

Using for loop ( when you want index )

If you want the index of each item for some reason. Then you can use the for loop to access both the index and value of ArrayList.

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); for (int index = 0; index < myListOfStrings.size() - 1; index++) { String value = myListOfStrings.get(index); System.out.println(value); }

We have to set our exit condition as myListOfStrings.size() - 1 because indexing starts at 0.

Also Read : 7 Sites to Learn Programming Languages Online For Free

TECHENUM

Creating a sub list

You can create a new List with the items from the current ArrayList. If you only wanted some elements you do not need to run a loop and then create another List and add items to it.

You can just use the method .subList() to produce the new list. All you have to do is provide the start index and end index. The value at starting index in included but the value at end index is excluded.

Let us see an example

ArrayList<String> myListOfStrings = new ArrayList<String>(); myListOfStrings.add("Value #1"); myListOfStrings.add("Value #2"); myListOfStrings.add("Value #3"); myListOfStrings.add("Value #4"); // will have items at 0 and 1 List<String> myNewList = myListOfStrings.subList(0, 2);

The resulting values are not ArrayList but only List. You can create a new ArrayList with the result if you like.

That was it about the ArrayList hope you know know how to do basic things using the ArrayList implementation of List interface. It was only a basic example of ArrayList in Java.

Naveen Niraula

I am an Android Developer. I really love to write tutorials and reviews about latest technologies.

Leave a Reply