删除多个 ArrayList 的内容
Posted
技术标签:
【中文标题】删除多个 ArrayList 的内容【英文标题】:Deleting content of multiple ArrayLists 【发布时间】:2015-02-12 06:10:24 【问题描述】:我创建了一个程序,用于存储关于 mp3 的三种不同信息。
我有一个trackNum
、name
和 duration
ArrayList
s。
我需要使用索引号从每个ArrayList
s 中删除内容,这是我所做的:
//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
的索引内容吗?
【问题讨论】:
【参考方案1】:使用方法来自
public void removeTrack(Integer postion)
到
public void removeTrack(int postion)
如果您使用对象,它将尝试在列表中查找对象。如果您使用原语,它会将其视为位置并因此删除该位置的元素。
【讨论】:
【参考方案2】:Integer
是一个对象,因此您将调用 List.remove(Object)
- 即删除传递的 值。
如果要删除索引,应将position
定义为原语int
:
public void removeTrack(int postion)
trackNum.remove(postion);
name.remove(postion);
duration.remove(postion);
【讨论】:
【参考方案3】:我对你的设计的一些建议
您可以只创建一个类,比如 SongInfo,然后将不同的属性作为实例变量保存在类中,而不是为每个属性(即名称、音轨和持续时间)单独创建一个列表
您可以定义一个仅包含 SongInfo 类型的对象的列表。这样设计会好很多
【讨论】:
谢谢,才看到这个抱歉。不过我同意,这是我刚开始编程的时候,哈哈以上是关于删除多个 ArrayList 的内容的主要内容,如果未能解决你的问题,请参考以下文章