ArrayList belongs to the List hierarchy in Java Collection framework.
If you like this article, please give me a thumbs up. Here’s the complete video https://youtu.be/b3WKatSm6lA
ArrayList is an ordered collection which is internally implemented by Array.
Although backed by array which is a fixed-size data structure, ArrayList is dynamically sized meaning it can be resized.
Creating a new ArrayList
ArrayList<String> myList = new ArrayList<>();
//adding elements to the list
myList.add("Item1"); //index 0
myList.add("Item2"); //index 1
myList.add("Item3"); //index 2
myList.add("Item4"); //index 3
//getting elements from the list by passing the index to get method
System.out.println(myList.get(0));
System.out.println(myList.get(1));
System.out.println(myList.get(2));
System.out.println(myList.get(3));
We can also set elements by index.
//this will set/update element at index 1 in nums to 21
nums.set(1, 21);
Adding elements to ArrayList in Bulk/Batch
private static void addingElementsFromAnotherCollection(ArrayList<String> myList) {
//creating a new collection
ArrayList<String> fromList = new ArrayList<>();
fromList.add("Item5");
fromList.add("Item6");
//Use addAll method to add values from collection fromList to myList in bulk
myList.addAll(l2);
System.out.println(myList);
}
Accessing elements using Iterator and for-each
private static void usingForEach(ArrayList<String> myList) {
System.out.println("for-each==============");
for (String element : myList) {
System.out.println(element);
}
}
private static void usingIterator(ArrayList<String> myList) {
System.out.println("Iterator===========");
Iterator<String> it = myList.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
Finding elements
String toCheck = "Item4";
//returns true if list contains Item4 otherwise returns false
System.out.println(myList.contains(toCheck));
//indexOf returns index of first occurrence
//lastIndexOf returns index of first occurrence from the end
System.out.println(myList.indexOf("Item6") + ", " + myList.lastIndexOf("Item6"));
Size related methods
myList.size(); //returns size of the arrayList
//returns true if List is empty
myList.isEmpty();
myList.clear(); //clears the list, removes all elements from the list
Removing elements from the List
private static void removeAndRetain(ArrayList<String> myList) {
myList.add("Item1");
myList.add("Item2");
myList.add("Item3");
myList.add("Item4");
myList.add("Item5");
System.out.println(myList);
//remove Item3 from the list
myList.remove("Item3");
System.out.println(myList);
//remove element at index 1
myList.remove(1);
System.out.println(myList);
ArrayList<String> tobeDeleted = new ArrayList<>();
tobeDeleted.add("Item4");
tobeDeleted.add("Item5");
//remove Item4 and Intem5 from myList in a single pass
myList.removeAll(tobeDeleted);
System.out.println(myList);
ArrayList<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.add(3);
nums.add(4);
//internally iterates the list elements and applies passed predicate to
//each element.
//All matching elements will be removed from the list
nums.removeIf(integer -> integer % 2 == 0);
System.out.println(nums);
ArrayList<Integer> nums1 = new ArrayList<>();
nums1.add(5);
nums1.add(6);
nums1.add(7);
nums1.add(8);
ArrayList<Integer> keepThese = new ArrayList<>();
keepThese.add(6);
keepThese.add(7);
//Opposite of removeAll
//All elements in nums1 which are not part of passed collection
//will be removed.
nums1.retainAll(keepThese);
System.out.println(nums1);
}
Converting an ArrayList to Array
ArrayList<Integer> nums = new ArrayList<>();
nums.add(1); //0
nums.add(2); //1
nums.add(3); //2
nums.add(4); //3
Object[] arr = nums.toArray(); //returns an object array
//An explicit cast is required to convert object[]
Integer[] arr = (Integer[]) nums.toArray();
//This doesn't need an explicit cast
//this version can infer the type from array type passed to toArray(..)
Integer[] arr = nums.toArray(new Integer[0]);
Performing an action on each element
//passed consumer will be applied to all elements
myList.forEach(s -> System.out.println(s.toUpperCase()));