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()));
Top comments (2)
Your variable names in examples are bad choices. It is hard to read
l1
appropriately because it looks nearly identical to11
which isn't valid. Same withl2
which then looks like12
.I agree. Thanks for pointing it out.