Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用字段字符串检查对象是否存在_Java - Fatal编程技术网

Java 使用字段字符串检查对象是否存在

Java 使用字段字符串检查对象是否存在,java,Java,我有一个Song类(字段:String name)和一个Album类(使用Song对象初始化Arraylist填充),我正在添加一个方法(addSongAlbum(String name参数)),该方法首先检查歌曲是否已经在唱片集中。一切都很好,但现在我也想检查一下这首歌是否存在于专辑之外。考虑到该方法的输入是一个字符串,我如何做到这一点 public void addSongToAlbum(String name){ if(checkExist(name) == null){

我有一个Song类(字段:String name)和一个Album类(使用Song对象初始化Arraylist填充),我正在添加一个方法(addSongAlbum(String name参数)),该方法首先检查歌曲是否已经在唱片集中。一切都很好,但现在我也想检查一下这首歌是否存在于专辑之外。考虑到该方法的输入是一个字符串,我如何做到这一点

public void addSongToAlbum(String name){
    if(checkExist(name) == null){
        album.add(checkExist(name));
        System.out.println("Song "+name+" was successfully added");
    } else {
        System.out.println("This song is already in the album");
    }
}

private Song checkExist(String name){
    for(int i=0; i<album.size(); i++){
        if(name.equals(album.get(i).getName())){
            return album.get(i);
        }
    }
    return null;
}
public void addSongToAlbum(字符串名称){
if(checkExist(name)==null){
添加(checkExist(name));
System.out.println(“已成功添加歌曲”+name+);
}否则{
System.out.println(“这首歌已经在专辑中了”);
}
}
私有歌曲检查存在(字符串名称){

对于(int i=0;i您需要在某个地方有一个
列表
所有
歌曲
对象。在构建时,可以将它们添加到静态
列表
(当不再用于垃圾收集内存时,您需要记住删除它们),或者有一个类似的
列表
,列出所有
相册
对象,然后搜索这些对象。如果要检查所有创建的歌曲
对象,第一个很有用;如果只想检查相册中的对象,第二个很有用。

我会创建一个可供用户使用的中心Songmanager对象ll对象与歌曲一起工作,就像这样

public class SongManager {

   private static SongManager sMan;

   private Map<String, Song> songs = new HashMap<String, Song>();

   public static SongManager getInstance() {
       if (sMan == null) {
           sMan = new SongManager();
       }
       return sMan;
   }

   public void addSong(Song s) {
       songs.put(s.getName, s);
   }

   public Song getSong(String name) {
       return songs.get(name);
   }

}
public class Song {

private String name;

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return name;
}
}

通过调用
SongManager.getInstance(),您可以随时随地访问此管理器。为此管理器中的所有现有歌曲创建一个简单的歌曲容器类。在您的
addSong
方法中,只需调用
getSong`方法即可查看歌曲是否存在


另外,我知道我在这里使用的单例模式非常有争议(参见,但对我来说,这是最简单的工作方式。

代码值1024个单词。请创建一个。我不太理解你的问题,你想知道你的歌曲中已经添加了哪些专辑?看看你的代码的第2行和第3行。考虑你通过代码>专辑添加的实际内容。添加< <代码>。我想检查一下是否有人。已经创作了这首歌,在这张专辑之外。这很有意义,所以我必须将它们分组到某个内容中,然后再去思考这个内容,没有办法检查所有已创建的类?(抱歉,如果问题是哑的,我是编程方面的新手,只是想确定一下)是的,你需要一种方法来访问它们。除非你与它们有连接(你有权访问的对象的字段,类的静态字段,单例类)你不能使用它们,它们最终会被垃圾收集。