为什么我重写了equals方法,输入数据还是可以输入相同的数据
public boolean equals(Object obj) {
if(this==obj)
{
return true;
}
//判断obj是否是Song类的对象
if(obj.getClass()==Song.class)
{
Song song = (Song)obj;
return song.getId().equals(id)&&song.getName()==name&&song.getSinger()==singer;
}
return false;
}
85
收起
正在回答 回答被采纳积分+1
3回答
qq_星空独奏_0
2017-04-25 19:31:23
package com.demo19; //播放器类 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class PlayList { private String playListName; private List<Song> musicList; public PlayList() { musicList = new ArrayList(); } public PlayList(String playListName, List<Song> musicList) { this.playListName = playListName; this.musicList = musicList; } public String getPlayListName() { return playListName; } public void setPlayListName(String playListName) { this.playListName = playListName; } public List<Song> getMusicList() { return musicList; } public void setMusicList(List<Song> musicList) { this.musicList = musicList; } //将歌曲添加到播放列表中 public void addToPlayList(Song song) { getMusicList().add(song); } //显示播放列表中所有歌曲 public void displayAllSong() { for(int i=0;i<getMusicList().size();i++) { System.out.println(((Song) getMusicList().get(i)).getId()+" "+ ((Song)getMusicList().get(i)).getName()+" "+((Song)getMusicList().get(i)).getSinger()); } } //通过ID查询歌曲的方法 public Song searchSongById(String id) { Song song = null; for(Song temp:musicList) { if(temp.getId().equals(id)) { song = temp; break; } } return song; } //通过歌曲名称去查找歌曲 public Song searchSongByName(String name) { Song song = null; for(Song temp:musicList) { if(temp.getName().equals(name)) { song = temp; break; } } return song; } //修改歌曲 public void updateSong(Song song) { } //从播放列表删除歌曲 public void deleteSong(String id) { Song song; for(Song temp:musicList) { if(temp.getId().equals(id)) { song = temp; musicList.remove(song); System.out.println("删除成功"); break; } } } //导出歌单 public void exportPlayList() { } }
package com.demo19; import java.util.Scanner; //测试类 public class TestDemo { PlayListCollection pc = new PlayListCollection(); PlayList pl = new PlayList(); // 测试Song类 public void testSong() { } // 测试播放列表类 public void testPlayList() { } // 测试播放器类 public void testPlayListCollection() { } // 主菜单 public void mainMenu() { } // 播放列表管理菜单 public void playListMenu() { while (true) { Song song = new Song(); Scanner sc = new Scanner(System.in); System.out.println("*****************************"); System.out.println("**播放列表管理**"); System.out.println("1--将歌曲添加到主播放列表"); System.out.println("2--将歌曲添加到普通播放列表"); System.out.println("3--通过歌曲ID查询播放列表中的歌曲"); System.out.println("4--通过歌曲名称查询播放列表中的歌曲"); System.out.println("5--修改播放列表中的歌曲"); System.out.println("6--删除播放列表中的歌曲"); System.out.println("7--显示播放列表中的所有歌曲"); System.out.println("8--导出歌单"); System.out.println("9--返回上一级菜单"); System.out.println("*****************************"); int key; switch (key = sc.nextInt()) { case 1: // 输入ID System.out.println("请输入歌曲ID"); String id = sc.next(); song.setId(id); // 输入歌曲名 System.out.println("请输入歌曲名"); String name = sc.next(); song.setName(name); // 输入歌手名 System.out.println("请输入歌手"); String singer = sc.next(); song.setSinger(singer); pc.playListMap.get("主播放列表").addToPlayList(song); break; case 2: // 输入播放列表名称 System.out.println("输入要插入播放列表名称"); String playlistname = sc.next(); if ((pc.getPlayListMap()).containsKey(playlistname)) { } else { System.out.println("该播放列表不存在,请先将播放列表添加到播放器中!"); break; } // 输入ID System.out.println("请输入歌曲ID"); String id2 = sc.next(); song.setId(id2); // 输入歌曲名 System.out.println("请输入歌曲名"); String name2 = sc.next(); song.setName(name2); // 输入歌手名 System.out.println("请输入歌手"); String singer2 = sc.next(); song.setSinger(singer2); pc.searchPlayListByName(playlistname); break; case 3: System.out.println("请输入查找歌曲的ID"); String sid = sc.next(); song = pl.searchSongById(sid); if(song!=null) { System.out.println("该ID存在"); System.out.println("ID为"+song.getId()+"的信息如下"); System.out.println(song); } else{ System.out.println("该ID的歌曲不存在"); } break; case 4: System.out.println("请输入查找歌曲的名称"); String sname = sc.next(); song = pl.searchSongByName(sname); if(song!=null) { System.out.println("该歌曲存在"); System.out.println("歌曲名为"+song.getName()+"的信息如下"); System.out.println(song); } else{ System.out.println("该歌曲不存在"); } break; case 5: break; case 6: break; case 7: // 输入播放列表名称 System.out.println("输入播放列表名称"); String playlistname2 = sc.next(); if ((pc.getPlayListMap()).containsKey(playlistname2)) { pc.getPlayListMap().get(playlistname2).displayAllSong(); } else { System.out.println("该播放列表不存在,请先将播放列表添加到播放器中!"); break; } break; case 8: break; case 9: break; } } } // 播放器菜单 public void palyerMenu() { pc.getPlayListMap().put("主播放列表", pl); while (true) { System.out.println("*****************************"); System.out.println("**播放器管理**"); System.out.println("1--向播放器添加播放列表"); System.out.println("2--从播放器删除播放列表"); System.out.println("3--通过名字查询播放列表信息"); System.out.println("4--显示所有播放列表"); System.out.println("*****************************"); Scanner sc = new Scanner(System.in); int key; switch (key = sc.nextInt()) { case 1: System.out.println("请输入列表的名称"); String name = sc.next(); pl.setPlayListName(name); pc.addPlayList(pl); break; case 2: System.out.println("请输入要删除列表的名称"); String name1 = sc.next(); pc.deletePlayList(name1); break; case 3: System.out.println("请输入列表的名称"); String name2 = sc.next(); pc.searchPlayListByName(name2); break; case 4: pc.displayPlayListName(); break; case 0: break; } } } // 主流程实现 public void test() { pc.getPlayListMap().put("主播放列表", pl); } public static void main(String[] args) { TestDemo t = new TestDemo(); t.test(); t.playListMenu(); } }
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星