Resizing an array in Java

In Java, arrays have a fixed length, which means that once created, the size of the array cannot be changed. However, there are situations where we need to resize an array dynamically based on the requirements of our program. In such cases, we can create a new array with the desired size and copy the elements from the old array to the new one.

In this blog post, we will explore different approaches to resizing an array in Java.

Table of Contents

Creating a New Array

One way to resize an array in Java is to create a new array with the desired size and then copy the elements from the old array to the new one. Here’s an example of how to do it:

int[] oldArray = {1, 2, 3, 4, 5};
int newSize = 10;

int[] newArray = new int[newSize];
System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);

In this example, we create a new array newArray with the size newSize and then use the System.arraycopy method to copy the elements from oldArray to newArray. The System.arraycopy method takes the source array, the starting index in the source array, the destination array, the starting index in the destination array, and the number of elements to copy.

Using ArrayList

Another approach to dynamically resizing an array in Java is to use the ArrayList class from the Java Collections framework. The ArrayList class provides methods for adding and removing elements, automatically resizing the underlying array as needed. Here’s an example:

import java.util.ArrayList;

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

list.add(4); // Resizing happens automatically

System.out.println(list);

In this example, we create an instance of the ArrayList class and add elements to it using the add method. The ArrayList class takes care of resizing the underlying array when needed, so we don’t have to worry about it.

Conclusion

Although arrays in Java have a fixed size, there are ways to resize them dynamically. In this blog post, we explored two approaches: creating a new array and using the ArrayList class. Depending on the specific requirements of your program, one approach may be more suitable than the other.

By understanding how to resize arrays in Java, you can write more flexible and efficient code that can adapt to changing conditions or user input.

For more Java-related topics, check out our other blog posts.

#hashtags #Java