'How do I fill a string array with empty objects?

So I create the array that will hold a cd collection. The only problem is the maximum array size is 50, how do I fill the array with empty objects if there's 50 objects?:

public static void main(String[] args) throws IOException 
  {
    final int MAX_ARRAY_SIZE = 50;
    final String FILENAME = "Collection.txt";

    CDOutput out = new CDOutput();
    CDInput in = new CDInput();

    int count = 0;  // Counter to keep track of number of elements in the array
    int choice = 0; // Menu choice

    String[] songArray = new String[MAX_ARRAY_SIZE]; // Create array to hold song collection

    {
    songArray[0] = new String("");// Fill array with empty objects ????????
    songArray[1] = new String("");
    songArray[2] = new String("");
    songArray[3] = new String("");
    songArray[4] = new String("");
    songArray[5] = new String("");
    songArray[6] = new String("");
    songArray[6] = new String("");
    songArray[7] = new String("");
    songArray[8] = new String("");
    songArray[9] = new String("");
    songArray[10] = new String("");
    songArray[11] = new String("");
    songArray[12] = new String("");
    songArray[13] = new String("");
    songArray[14] = new String("");
    songArray[15] = new String("");
    songArray[16] = new String("");
    songArray[17] = new String("");
    songArray[18] = new String(""); //and so on......
    }

I know this cannot be correct...

EDIT (this truly was quite easy in hindsight):

String[] songArray = new String[50];
for (int i = 0; i < 50; i++)
    songArray[i] = new String("");


Solution 1:[1]

Arrays.fill() maybe can help you: http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html

Also, if you are using Apache Commons Lang, you can use ArrayUtils.nulltoEmpty()

Solution 2:[2]

Use Arrays#fill. For more details, check out the Javadoc. A typical use is as follows:

String[] a = new String[5];
String stringToFillWith = "";
Arrays.fill(a, 0, a.length - 1, stringToFillWith);

Edit: The two numbers 0 and a.length - 1 are the initial and final indices to be filled with the given value (in this case, stringToFillWith).

Solution 3:[3]

In Java, whenever you initialize an array, the array will have some default value that "fills up" all of the newly formed array. For numerical values, they are zero, and null for arrays storing objects:

  • boolean[]: false
  • char[]: '\u0000'
  • byte[], short[], int[], , long[] : 0
  • double[], float[]. : 0.0
  • String[], Object[], etc. : null

If you want songArray to begin with only null values before they have "CDs" added, then no further work is needed. If you want songArray to begin with all "" values then use Arrays.fill:

import java.util.Arrays;
....
String[] songArray = new String[MAX_ARRAY_SIZE];
Arrays.fill(songArray, "");

Note that you can also easily do this manually using a for loop, rather than copying and pasting a line of code 50 times:

for (int i = 0; i < MAX_ARRAY_SIZE; i++)
{
    songArray[i] = "";
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 hveiga
Solution 2 Chthonic Project
Solution 3 SimonT