老师我这个用名字查询一直提示没找到为什么?

来源:2-3 歌曲的查询

Gudalow7

2020-03-28 14:07:21

package com.imooc.playMusic;

public class TestDemo {
    
    public void testSong() {
        Song s1=new Song("s001","周杰伦", "一路向北");
        Song s2=new Song("s002","周杰伦", "蜗牛");
        Song s3=new Song("s003","周杰伦", "爱的飞行日记");
        System.out.println(s1);
        System.out.println("s1==s3:?"+s1.equals(s3));
    }
    public void testplaylist() {
        Song s1=new Song("s001","周杰伦", "一路向北");
        Song s2=new Song("s002","周杰伦", "蜗牛");
        Song s3=new Song("s003","周杰伦", "爱的飞行日记");
        Song s4=new Song("s003","周杰伦", "爱的飞行日记");
        //创建构造playlist
        playList mainplayList = new playList("周杰伦");
        mainplayList.addToplaylist(s1);
        mainplayList.addToplaylist(s2);
        mainplayList.addToplaylist(s3);
        mainplayList.addToplaylist(s4);
        //show
        mainplayList.displayallSong();
        //search id
        Song song1 = mainplayList.searchSongID("s001");
        if(song1!=null) {
            System.out.println("歌曲为:");
            System.out.println(song1);
        }else {
            System.out.println("没找到");
        }
        //search name
        song1=null;
        song1=mainplayList.searchSongname("蜗牛");
        if(song1!=null) {
            System.out.println("name歌曲为:");
            System.out.println(song1);
        }else {
            System.out.println("没找到");
        }
        
    }
    public static void main(String[] args) {
        TestDemo t1 = new TestDemo();
        t1.testplaylist();

    }

}

==========================================================

package com.imooc.playMusic;

import java.awt.List;
import java.util.ArrayList;

import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;

public class playList {
    private String playListname;//播放列表名称
    private ArrayList<Song> MusicList;
    //构造
    public playList(String playListname) {
        this.playListname=playListname;
        MusicList=new ArrayList<Song>();
    }
    /**
     * 将歌曲添加到播放列表
     *
     * */
    public void addToplaylist(Song song) {
        //排除重复添加的情况
        boolean flag=false;
        for(Song song1:MusicList) {
            if(song1.equals(song)) {
                flag=true;
                break;
            }
        }
        if(flag) {
            System.out.println("歌曲以存在");
        }else{
            MusicList.add(song);
        }
    }
    /**
     * 显示播放列表中的所有歌曲
     * */
    public void displayallSong() {
        System.out.println("播放列表中的所有歌曲为:");
        for(Song song:MusicList) {
            System.out.println(song);
        }
    }
    /**
     * idsearch
     * */
    public Song searchSongID(String id) {
        Song song=null;
        //id 唯一
        for(Song song1:MusicList) {
            if(song1.getId().equals(id)) {
                song=song1;
                break;
            }
        }
        return song;
        
    }
    /**
     * namesearch
     * */
    public Song searchSongname(String  name) {
        Song song = null;
        for(Song song1 : MusicList) {
            if(song1.getName().equals(name)) {
                song=song1;
                break;
            }
        }
        return song;
        
    }
    
}

===========================================================

package com.imooc.playMusic;

public class Song {
    private String id;
    private String name;
    private String singer;
    
    //wuchan构造
    public Song() {
        
    }
    //daichan构造
    public Song(String id,String name,String singer) {
        this.id=id;
        this.name=name;
        this.singer=singer;
    }
    
    //get or set
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSinger() {
        return singer;
    }
    public void setSinger(String singer) {
        this.singer = singer;
    }
    
    
    //ha or eq
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((id == null) ? 0 : id.hashCode());
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((singer == null) ? 0 : singer.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if(this==obj)
            return true;
        if(obj.getClass()==Song.class) {
            Song song = (Song)obj;
            return song.getId().equals(id)&song.getName().equals(name)&song.
                    getSinger().equals(singer);
        }
        return false;
        
    }
    
    
    //tostring
    @Override
    public String toString() {
        return "歌曲 [id=" + id + ", 名字=" + name + ", 演唱者=" + singer + "]";
    }
}

写回答

1回答

好帮手慕雪

2020-03-28

找不到歌曲,可以从以下两个方面入手找问题。1)是不是歌曲库出问题了。2)是不是查找的问题。你是说searchSongname(String  name) 个方法吧?可以在 for中先遍历输出一下MusicList 各对象,看看它里面都有什么内容。是不是存的时候出问题了呢。

0

0 学习 · 2907 问题

查看课程