播放列表中四首歌曲都能显示出来,可是为什么根据id和name只能查询第一个歌曲?
老师,代码和视频中演示的一样,为什么结果出问题?
console显示结果:
播放列表中的歌曲为
歌曲信息 :id为:S001 歌曲名称为:小燕子 演唱者为:小太阳合唱团
歌曲信息 :id为:S002 歌曲名称为:小燕 演唱者为:太阳合唱团
歌曲信息 :id为:S003 歌曲名称为:小鼹鼠 演唱者为:大风车合唱团
歌曲信息 :id为:S004 歌曲名称为:小燕子 演唱者为:大风车合唱团
该歌曲不存在!
根据name查到的歌曲为:
歌曲信息 :id为:S001 歌曲名称为:小燕子 演唱者为:小太阳合唱团
11
收起
正在回答
1回答
同学你好,当集合中歌名与接收的歌名是一样的就会赋值,并退出循环。如下图所示,所以只查询到第一首歌
如果同学想要查询重复歌名的歌曲,则同学可尝试使用集合,将查询到的数据添加到新集合中,然后将所有数据从集合中取出来。代码如下:
public void searchSongByNames(String name) { List<Song> list = new ArrayList<Song>(); for (Song song : musicList) { if (song.getName().equals(name)) { list.add(song); } } if (list.size() != 0) { int num = 1; for (Song s : list) { System.out.println("第" + num + "首" + "歌名为:" + s.getName()); num++; } } else { System.out.println("该格式的歌曲不存在!"); } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星