gpt4 book ai didi

java - ArrayList正确使用吗?

转载 作者:行者123 更新时间:2023-12-01 16:35:24 24 4
gpt4 key购买 nike

有一个问题..我有一个 mp3 文件名列表要添加新文件名,请使用:

musicList.add(new Mp3(id, filename));

现在我想创建一个包含此列表的数组

 private static final int LIST_COUNT = 8;
public static List<List<Mp3>> musicLists = new ArrayList<List<Mp3>>(LIST_COUNT);

private void parseMus(){
musicLists = new ArrayList<List<Mp3>>(LIST_COUNT);
...
//gettin mp3 list id,filename, length
...
musicLists.get(listNr).add(new Mp3(id,filename,length));
...
}

但它给了我错误:

     03-15 21:01:36.030: E/AndroidRuntime(3393): java.lang.IndexOutOfBoundsException: Invalid index 4, size is 0
<小时/>

第二个问题!现在我编辑了代码并且没有错误...但是现在我得到的是所有列表都填充了相同的列表..所以当我尝试查看时:

        for(int i =0; i< Settings.musicLists.size();i++){
if(D)Log.e("visio added","MP3 file muslist nr="+i+"= "+Settings.musicLists.get(i));
}

我显示了 8 个相同的行...我做错了什么?

最佳答案

musicLists = new ArrayList<List<Mp3>>(LIST_COUNT);

您似乎认为这一行创建了一个包含 8 个列表的列表。然而,它真正做的是创建一个初始容量为 8 的空列表。也就是说,它实际上不会将任何列表填充到 musicLists 中。 .

为了做到这一点,您需要初始化 musicLists然后使用 musicLists.add(foo)添加 8 List<Mp3>反对它。

关于java - ArrayList正确使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727389/

24 4 0