I want to declare an empty array in java and then I want do update it but the code is not working...
public class JavaConversion { public static void main(String args[]) { int array[]={}; int number = 5, i = 0,j = 0; while (i<4) { array[i]=number; i=i+1; } while (j<4) { System.out.println(array[j]); } } } 58 Answers
You are creating an array of zero length (no slots to put anything in)
int array[]={/*nothing in here = array with no elements*/}; and then trying to assign values to array elements (which you don't have, because there are no slots)
array[i] = number; //array[i] = element i in the array of length 0 You need to define a larger array to fit your needs
int array[] = new int[4]; //Create an array with 4 elements [0],[1],[2] and [3] each containing an int value 2Your code compiles just fine. However, your array initialization line is wrong:
int array[]={}; What this does is declare an array with a size equal to the number of elements in the brackets. Since there is nothing in the brackets, you're saying the size of the array is 0 - this renders the array completely useless, since now it can't store anything.
Instead, you can either initialize the array right in your original line:
int array[] = { 5, 5, 5, 5 }; Or you can declare the size and then populate it:
int array[] = new int[4]; // ...while loop If you don't know the size of the array ahead of time (for example, if you're reading a file and storing the contents), you should use an ArrayList instead, because that's an array that grows in size dynamically as more elements are added to it (in layman's terms).
You need to give the array a size:
public static void main(String args[]) { int array[] = new int[4]; int number = 5, i = 0,j = 0; while (i<4){ array[i]=number; i=i+1; } while (j<4){ System.out.println(array[j]); j++; } } You can't set a number in an arbitrary place in the array without telling the array how big it needs to be. For your example: int[] array = new int[4];
You can do some thing like this,
Initialize with empty array and assign the values later
String importRt = "23:43 43:34"; if(null != importRt) { importArray = Arrays.stream(importRt.split(" ")) .map(String::trim) .toArray(String[]::new); } System.out.println(Arrays.toString(exportImportArray)); Hope it helps..
You can try creating new array at every iteration with a size greater than in the previous iteration. i.e.
public class JavaConversion { public static void main(String args[]) { int array[]=new int[0]; int number = 5, i = 0,j = 0; while (i<4) { array = Arrays.copyOf(array, array.length + 1); array[i]=number; i=i+1; } while (j<4) { System.out.println(array[j]); } } } So the issue is in your array declaration you are declaring an empty array with the empty curly braces{} instead of an array that allows slots.
Roughly speaking, there can be three types of inputs:
int array[] = null;- Does not point to any memory locations so is a null arrauint array[] = {}- which is sort of equivalent toint array[] = new int[0];int array[] = new int[n]wherenis some number indicating the number of memory locations in the array
It is better for that operation use ArrayList