老师我这个用名字查询一直提示没找到为什么?
来源: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 各对象,看看它里面都有什么内容。是不是存的时候出问题了呢。
相似问题