我需要一种从手工列表中删除确定元素的方法。

我有一个叫做AudioFile的类。列表的每个元素都是此类的一个对象。
然后,我有了FileTable类,它具有以下特性:

private AudioFile[] table;
private int size;


我定义了此方法,但是在调用它时不起作用:

public void deleteFile(AudioFile file){
   AudioFile[] table2 = new AudioFile[100];
   int j = 0;
   for (int i = 0; i < size; i++){
       if (table[i] != file){
           table2[j] = table[i];
           j++;
        } else {
           i++;
       }
   }
    for (int k = 0; k < size); k++){
        table2[k] = table[k];
    }
    table[size-1] = null;
}


我认为代码很容易理解,但是如果您不了解某些内容,或者需要有关AudioFile类的更多信息,可以说出来,我也将尽力提供帮助。谢谢!

最佳答案

您正在重新发明轮子,只需使用诸如List或Set的Collection。他们已经有一个remove()方法,该方法完全可以完成您想做的事情。
将数组作为低级类型查看,并始终使用Collection(在真正特殊的情况下除外)。

09-09 17:11