Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Selected Reading
How to resize an array in Java?
An array cannot be resized dynamically in Java.
- One approach is to use java.util.ArrayList(or java.util.Vector) instead of a native array.
- Another approach is to re-allocate an array with a different size and copy the contents of the old array to the new array.
Example:
class ResizableArray {
public static void main (String[] args) {
int[] a = {1, 2, 3};
a = (int[])resizeArray(a, 5);
a[3] = 4;
a[4] = 5;
for (int i=0; i<a.length; i++)
System.out.println(a[i]);
}
private static Object resizeArray (Object oldArray, int newSize) {
int oldSize = java.lang.reflect.Array.getLength(oldArray);
Class elementType = oldArray.getClass().getComponentType();
Object newArray = java.lang.reflect.Array.newInstance(elementType, newSize);
int preserveLength = Math.min(oldSize, newSize);
if (preserveLength > 0)
System.arraycopy(oldArray, 0, newArray, 0, preserveLength);
return newArray;
}
}
Output:
1 2 3 4 5
Advertisements
