ArrayList in Java
ArrayList is a part of the Java Collections Framework and is one of the most commonly used classes in Java for storing dynamic lists of objects.
Unlike arrays, ArrayList can grow and shrink in size dynamically.
It provides more flexibility compared to arrays due to its ability to handle variable-sized collections.
Key Features of ArrayList
Dynamic Size: The size of an ArrayList can increase or decrease dynamically as elements are added or removed.
Homogeneous Elements: Typically, ArrayList holds elements of a single type, specified when the ArrayList is declared.
Indexed Access: Elements can be accessed using their index, just like arrays.
Provides Utility Methods: ArrayList comes with a set of useful methods for manipulation, such as adding, removing, and searching for elements.
Importing ArrayList
To use ArrayList, you need to import it from the java.util package.
import java.util.ArrayList;
Creating an ArrayList
You can create an ArrayList using its constructor. You can specify the type of elements it will hold using generics.
ArrayList<String> stringList = new ArrayList<>();
ArrayList<Integer> intList = new ArrayList<>();
Adding Elements to an ArrayList
You can add elements to an ArrayList using the add method.
stringList.add("Hello");
stringList.add("World");
intList.add(10);
intList.add(20);
Accessing Elements in an ArrayList
You can access elements using the get method, which takes the index of the element as an argument.
String firstString = stringList.get(0);
int firstInt = intList.get(0);
System.out.println("First String: " + firstString); // Outputs: First String: Hello
System.out.println("First Integer: " + firstInt); // Outputs: First Integer: 10
Modifying Elements in an ArrayList
You can modify elements using the set method, which takes the index and the new value.
stringList.set(0, "Hi");
System.out.println("Modified First String: " + stringList.get(0)); // Outputs: Modified First String: Hi
Removing Elements from an ArrayList
You can remove elements using the remove method, which can take either the index of the element or the element itself.
stringList.remove(1); // Removes the element at index 1
intList.remove(Integer.valueOf(20)); // Removes the element 20
Iterating Over an ArrayList
You can iterate over an ArrayList using a for loop, an enhanced for loop, or an iterator.
Using a For Loop
for (int i = 0; i < stringList.size(); i++) {
System.out.println("Element at index " + i + ": " + stringList.get(i));
}
Using an Enhanced For Loop
for (String element : stringList) {
System.out.println("Element: " + element);
}
Example
Here’s a complete example demonstrating the creation, manipulation, and iteration of an ArrayList in Java:
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// Create an ArrayList to store Strings
ArrayList<String> stringList = new ArrayList<>();
// Add elements to the ArrayList
stringList.add("Hello");
stringList.add("World");
// Access elements
String firstString = stringList.get(0);
System.out.println("First String: " + firstString); // Outputs: First String: Hello
// Modify an element
stringList.set(0, "Hi");
System.out.println("Modified First String: " + stringList.get(0)); // Outputs: Modified First String: Hi
// Remove an element
stringList.remove(1); // Removes the element at index 1
// Iterate over the ArrayList
for (String element : stringList) {
System.out.println("Element: " + element); // Output: Element: Hi
}
}
}
Example: Calculating the Sum of ArrayList Elements:
Let's create a simple program that calculates the sum of elements in an ArrayList:
import java.util.ArrayList;
public class ArrayListSum {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
// Calculate the sum
int sum = 0;
for (int number : numbers) {
sum += number;
}
// Print the result
System.out.println("Sum of elements: " + sum); // Output: Sum of elements: 6
}
}
Summary
Dynamic Size: ArrayList can grow and shrink as needed.
Homogeneous Elements: Typically holds elements of a single type.
Indexed Access: Elements are accessed using their index.
Utility Methods: Provides methods for adding, removing, and manipulating elements.
Iterating: Can be iterated using for loops or iterators.
ArrayList is a versatile and powerful tool in Java for handling collections of objects. It offers more flexibility compared to arrays and is a fundamental part of the Java Collections Framework. Understanding how to use ArrayList is essential for effective Java programming.