Java 需要帮助从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

我正在创建一个程序,将用户输入从扫描仪(字符串,确切地说是歌曲标题)插入arrayList。我可以很好地插入它们,但我还想创建另一个类,该类将从arrayList中删除歌曲。是否有任何方法可以删除特定歌曲,或者只需删除阵列中的第一个位置?如果我这样做了,arrayList会改变位置,所以位置1会变成位置0等等,还是位置1会保持位置1,位置0会是空的?我将歌曲添加到ArrayList的代码:

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
在循环迭代完成后立即退出其作用域。在下一次迭代中,变量将再次初始化,但这不会更改列表的内容

因此,给一个简短的回答:它存储输入的字符串