对象数组的正确使用方法?

时间:2012-03-13 21:49:13

标签: java android

我拥有的是

public static LinkedList<Mp3> musicList;        
...
if (musicList == null) {
    musicList = new LinkedList<Mp3>();
}//create... this works

但如果我喜欢5个或更多列表,我该怎样做:

Object[] ob = new Object[]{musicList,musicList2,...,musicList10};

for (int i = 0; i < ob.length; i++){
    if (ob[i] == null) ob[i] = new LinkedList<Mp3>();
}

如果我把它放在第一位,它就会起作用;我怎么能像第二个片段一样把它放进去?

3 个答案:

答案 0 :(得分:4)

避免混合数组和泛型。

相反,请考虑一下:

List<List<Mp3>> listsList = new ArrayList<List<Mp3>>();
listsList.add(new LinkedList<Mp3>());

答案 1 :(得分:2)

更改数组中的引用不会更改用于创建数组的原始引用。

数组中的引用是初始化中的内容的副本。

你应该做的是摆脱musicListN变量,只有一个数组,或者更好的是使用List。

List<List<Mp3>> musicLists = new ArrayList<List<Mp3>>(LIST_COUNT);
for (int i = 0; i < LIST_COUNT; i++) {
  musicLists.add(new LinkedList<Mp3>());
}

然后将musicLists.get()用于您将使用旧变量的任何地方。

答案 2 :(得分:0)

如果您真的想要进行一个行对象列表初始化,请查看此Q. Initialization of an ArrayList in one line