我拥有的是
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>();
}
如果我把它放在第一位,它就会起作用;我怎么能像第二个片段一样把它放进去?
答案 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