删除多个ArrayLists的内容

时间:2014-12-13 18:22:06

标签: java arrays methods arraylist

我创建了一个程序,存储有关mp3的三个不同信息。

我有trackNumnameduration ArrayList

我需要使用索引号从每个ArrayList中删除内容,这是我所做的:

    //This is my method

    public void removeTrack(Integer postion){
        trackNum.remove(postion);
        name.remove(postion);
        duration.remove(postion);
    }

    //This is me using the method
    case 2:
        meth.print();
        System.out.println("Please enter the index of the track you want to remove:");
        meth.removeTrack(in.nextInt());
        break;

我遇到的问题是,它没有删除每个数组列表的索引,例如:

输入:

         index    trackNum    name    duration 
           0        111         1         1
           1         2          2         2
           2         3          3         3
           3         4          4         4

如果我输入2,则删除每个数组列表的索引2。

输出:

         index    trackNum    name    duration 
           0        111         1         1
           1         3          2         2
           2         4          3         3

如果我输入111则会删除111

有人可以帮我删除每个ArrayList的索引内容。

3 个答案:

答案 0 :(得分:2)

使用

中的方法
public void removeTrack(Integer postion){

public void removeTrack(int postion){

如果使用object,它将尝试在列表中查找对象。如果使用原语,它会将其视为位置,从而删除位置处的元素。

答案 1 :(得分:2)

Integer是一个对象,因此您将调用List.remove(Object) - 即删除传递的。 如果要删除索引,则应将position定义为基元int

public void removeTrack(int postion){
    trackNum.remove(postion);
    name.remove(postion);
    duration.remove(postion);
}

答案 2 :(得分:1)

我方面有关您设计的一些建议

不是为每个属性分别创建一个List,即Name,Track和Duration,你可以创建一个类说SongInfo,然后将不同的属性保存为类中的Instance变量

您可以定义仅包含SongInfo类型的对象的List。这种方式设计会好很多