Java ArrayList class can contain duplicate elements.
Java ArrayList class maintains insertion order.
Java ArrayList class is non synchronized.
Java ArrayList allows random access because array works at the index basis.
In Java ArrayList class, manipulation is slow because a lot of shifting needs to be occurred if any element is removed from the array list.
Hierarchy of ArrayList class
As shown in above diagram, Java ArrayList class extends AbstractList class which implements List interface. The List interface extends Collection and Iterable interfaces in hierarchical order.
ArrayList class declaration
Let's see the declaration for java.util.ArrayList class.
Constructors of Java ArrayList
Constructor
Description
ArrayList()
It is used to build an empty array list.
ArrayList(Collection c)
It is used to build an array list that is initialized with the elements of the collection c.
ArrayList(int capacity)
It is used to build an array list that has the specified initial capacity.
Methods of Java ArrayList
Method
Description
void add(int index, Object element)
It is used to insert the specified element at the specified position index in a list.
boolean addAll(Collection c)
It is used to append all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's iterator.
void clear()
It is used to remove all of the elements from this list.
int lastIndexOf(Object o)
It is used to return the index in this list of the last occurrence of the specified element, or -1 if the list does not contain this element.
Object[] toArray()
It is used to return an array containing all of the elements in this list in the correct order.
Object[] toArray(Object[] a)
It is used to return an array containing all of the elements in this list in the correct order.
boolean add(Object o)
It is used to append the specified element to the end of a list.
boolean addAll(int index, Collection c)
It is used to insert all of the elements in the specified collection into this list, starting at the specified position.
Object clone()
It is used to return a shallow copy of an ArrayList.
int indexOf(Object o)
It is used to return the index in this list of the first occurrence of the specified element, or -1 if the List does not contain this element.
void trimToSize()
It is used to trim the capacity of this ArrayList instance to be the list's current size.
Java Non-generic Vs Generic Collection
Java collection framework was non-generic before JDK 1.5. Since 1.5, it is generic.
Java new generic collection allows you to have only one type of object in collection. Now it is type safe so typecasting is not required at run time.
Let's see the old non-generic example of creating java collection.
Let's see the new generic example of creating java collection.
In generic collection, we specify the type in angular braces. Now ArrayList is forced to have only specified type of objects in it. If you try to add another type of object, it gives compile time error.
Java ArrayList Example
Output
Two ways to iterate the elements of collection in java
There are two ways to traverse collection elements:
By Iterator interface.
By for-each loop.
In the above example, we have seen traversing ArrayList by Iterator. Let's see the example to traverse ArrayList elements using for-each loop
Iterating Collection through for-each loop
Output
User-defined class objects in Java ArrayList
Let's see an example where we are storing Student class object in array list.
Output
Example of addAll(Collection c) method
Output
Example of removeAll() method
Output
Example of retainAll() method
Output
Java ArrayList Example: Book
Let's see an ArrayList example where we are adding books to list and printing all the books.
arraylist java examplearraylist androidhow to use arraylist in javaarraylist java 8arraylist java arraylist initializationarraylist vs arrayjava arraylist sortarraylist java tutorialjava arraylist initializationhow to use arraylist in javaarraylist of objects in java