Java 需要帮助从ArrayList中删除扫描仪添加的项目吗
我正在创建一个程序,将用户输入从扫描仪(字符串,确切地说是歌曲标题)插入arrayList。我可以很好地插入它们,但我还想创建另一个类,该类将从arrayList中删除歌曲。是否有任何方法可以删除特定歌曲,或者只需删除阵列中的第一个位置?如果我这样做了,arrayList会改变位置,所以位置1会变成位置0等等,还是位置1会保持位置1,位置0会是空的?我将歌曲添加到ArrayList的代码:Java 需要帮助从ArrayList中删除扫描仪添加的项目吗,java,string,input,arraylist,Java,String,Input,Arraylist,我正在创建一个程序,将用户输入从扫描仪(字符串,确切地说是歌曲标题)插入arrayList。我可以很好地插入它们,但我还想创建另一个类,该类将从arrayList中删除歌曲。是否有任何方法可以删除特定歌曲,或者只需删除阵列中的第一个位置?如果我这样做了,arrayList会改变位置,所以位置1会变成位置0等等,还是位置1会保持位置1,位置0会是空的?我将歌曲添加到ArrayList的代码: import java.util.*; public class addSongs { pub
import java.util.*;
public class addSongs {
public static void main (String[]args){
Scanner songAdd = new Scanner(System.in);
Scanner addContinue = new Scanner(System.in);
String ceaseAdd = new String();
ceaseAdd = "Y";
while(ceaseAdd.equals("Y")){
System.out.println("Enter track title");
String newSong = songAdd.nextLine();
MP3_catalogue.title.add(newSong);
System.out.println("Enter artist name");
String newArtist = songAdd.nextLine();
MP3_catalogue.artist.add(newArtist);
System.out.println("Enter duration");
String newDuration = songAdd.nextLine();
MP3_catalogue.duration.add(newDuration);
System.out.println("Would you like to add another song? Y/N");
ceaseAdd = addContinue.nextLine().toUpperCase();
}
MP3_catalogue obj = new MP3_catalogue();
}
}
编辑:上面的类通过使用扫描仪更改变量newSong、newArtist、newDuration将歌曲添加到ArrayList中,然后再次循环将相同的变量更改为不同的输入。arrayList是保存变量的内容(即输入的特定字符串),还是只保存变量(即newSong)?如果它只是保存新闻歌曲,我肯定会有一个具有相同内容的arrayList来填充它。只需检查
我认为
ArrayList.remove(Object)
是您需要的。ArrayList
s支持随机访问。因此,可以删除指定的项目。看
关于第二个问题(稍后编辑中的问题),这是一个与Java中的参数传递相关的典型问题
将newSong
传递到add
方法时,实际上传递的是String
对象的引用。因此,这与用于引用它的变量无关,即newSong
。无论如何,newSong
在循环迭代完成后立即退出其作用域。在下一次迭代中,变量将再次初始化,但这不会更改列表的内容
因此,给一个简短的回答:它存储输入的字符串