所以我创建了一个数组,它将容纳一个cd集合。唯一的问题是最大数组大小是50,如果有50个对象,我如何用空对象填充数组?:
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......
}
我知道这不可能是正确的。。。
编辑(事后看来,这确实很容易):
String[] songArray = new String[50];
for (int i = 0; i < 50; i++)
songArray[i] = new String("");
Arrays.fill()也许可以帮助您:http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
此外,如果您使用的是Apache Commons Lang,则可以使用ArrayUtils.nultoEmpty()
使用Arrays#fill
。有关更多详细信息,请查看Javadoc。典型用途如下:
String[] a = new String[5];
String stringToFillWith = "";
Arrays.fill(a, 0, a.length - 1, stringToFillWith);
编辑:两个数字0和a.length - 1
是要用给定值(在本例中为stringToFillWith
)填充的初始索引和最终索引。
在Java中,每当初始化一个数组时,该数组都会有一些默认值来"填充"所有新形成的数组。对于数值,它们为零,对于存储对象的数组,它们为null
:
boolean[]
:false
char[]
:'u0000'
byte[]
、short[]
、int[]
、long[]
:0
double[]
,float[]
.:0.0
String[]
、Object[]
等:null
如果您希望songArray
在添加"CD"之前仅以null
值开始,则不需要进一步的工作。如果希望songArray
以所有""
值开头,则使用Arrays.fill
:
import java.util.Arrays;
....
String[] songArray = new String[MAX_ARRAY_SIZE];
Arrays.fill(songArray, "");
请注意,您也可以使用for
循环轻松地手动执行此操作,而不是复制和粘贴一行代码50次:
for (int i = 0; i < MAX_ARRAY_SIZE; i++)
{
songArray[i] = "";
}