Converting a Split String to an ArrayList
Now that we have split our string into an array, let us convert it to an ArrayList. ArrayLists offer more flexibility than arrays, including dynamic resizing and convenient methods for adding, removing, and manipulating elements.
Converting an Array to ArrayList
There are several ways to convert an array to an ArrayList in Java:
- Using
Arrays.asList()
and the ArrayList constructor
- Using a loop to add each element individually
- Using Java 8 Stream API
Let us update our StringSplitDemo.java
file to include the conversion to ArrayList. We will need to import the necessary classes from the java.util
package:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class StringSplitDemo {
public static void main(String[] args) {
// Create a string with comma-separated values
String csvData = "apple,banana,orange,grape,mango";
System.out.println("Original string: " + csvData);
// Split the string using comma as delimiter
String[] fruits = csvData.split(",");
// Print the resulting array
System.out.println("\nAfter splitting into array:");
System.out.println("Number of elements: " + fruits.length);
// Display each element of the array
for (int i = 0; i < fruits.length; i++) {
System.out.println("Array Element " + i + ": " + fruits[i]);
}
// Method 1: Convert to ArrayList using Arrays.asList() and the ArrayList constructor
ArrayList<String> fruitList1 = new ArrayList<>(Arrays.asList(fruits));
// Method 2: Convert to ArrayList using a loop
ArrayList<String> fruitList2 = new ArrayList<>();
for (String fruit : fruits) {
fruitList2.add(fruit);
}
// Display the ArrayList created using Method 1
System.out.println("\nAfter converting to ArrayList (Method 1):");
System.out.println("Number of elements: " + fruitList1.size());
for (int i = 0; i < fruitList1.size(); i++) {
System.out.println("ArrayList Element " + i + ": " + fruitList1.get(i));
}
// Demonstrate adding a new element to the ArrayList
fruitList1.add("pineapple");
System.out.println("\nAfter adding a new element to ArrayList:");
System.out.println("Number of elements: " + fruitList1.size());
System.out.println("New element: " + fruitList1.get(fruitList1.size() - 1));
}
}
Save the file and run the program:
javac StringSplitDemo.java
java StringSplitDemo
You should see output similar to:
Original string: apple,banana,orange,grape,mango
After splitting into array:
Number of elements: 5
Array Element 0: apple
Array Element 1: banana
Array Element 2: orange
Array Element 3: grape
Array Element 4: mango
After converting to ArrayList (Method 1):
Number of elements: 5
ArrayList Element 0: apple
ArrayList Element 1: banana
ArrayList Element 2: orange
ArrayList Element 3: grape
ArrayList Element 4: mango
After adding a new element to ArrayList:
Number of elements: 6
New element: pineapple
This example demonstrates how to convert a string array to an ArrayList and showcases one of the advantages of using an ArrayList: the ability to easily add new elements to the collection.
Note the differences between arrays and ArrayLists:
- Arrays have a fixed size, while ArrayLists can grow dynamically
- ArrayLists provide methods like
add()
, remove()
, and get()
for manipulating elements
- ArrayLists can only store objects, not primitive types (though Java automatically handles the conversion using autoboxing)
In the next step, we will explore different delimiters for splitting strings.