Java 使用字段字符串检查对象是否存在
我有一个Song类(字段:String name)和一个Album类(使用Song对象初始化Arraylist填充),我正在添加一个方法(addSongAlbum(String name参数)),该方法首先检查歌曲是否已经在唱片集中。一切都很好,但现在我也想检查一下这首歌是否存在于专辑之外。考虑到该方法的输入是一个字符串,我如何做到这一点Java 使用字段字符串检查对象是否存在,java,Java,我有一个Song类(字段:String name)和一个Album类(使用Song对象初始化Arraylist填充),我正在添加一个方法(addSongAlbum(String name参数)),该方法首先检查歌曲是否已经在唱片集中。一切都很好,但现在我也想检查一下这首歌是否存在于专辑之外。考虑到该方法的输入是一个字符串,我如何做到这一点 public void addSongToAlbum(String name){ if(checkExist(name) == null){
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行。考虑你通过代码>专辑添加的实际内容。添加< <代码>。我想检查一下是否有人。已经创作了这首歌,在这张专辑之外。这很有意义,所以我必须将它们分组到某个内容中,然后再去思考这个内容,没有办法检查所有已创建的类?(抱歉,如果问题是哑的,我是编程方面的新手,只是想确定一下)是的,你需要一种方法来访问它们。除非你与它们有连接(你有权访问的对象的字段,类的静态字段,单例类)你不能使用它们,它们最终会被垃圾收集。