怎么封装list map集合类型,封装了怎么添加数据和怎么设置泛型,封装以后怎样对数据进行增删改查。
public class PlayList {
private String playListName;//播放器列表名称
// private ArrayList musicList;//播放器列表里面歌曲
List<Song> list=new ArrayList<Song>();
public PlayList(){//无参的构造方法
}
public PlayList(String playListName){//带参的构造方法,ArrayList musicList
this.playListName=playListName;
//this.musicList=musicList;
}
//set/get方法
public String getPlayListName() {
return playListName;
}
public void setPlayListName(String playListName) {
this.playListName = playListName;
}
// public ArrayList getMusicList() {
// return musicList;
// }
// public void setMusicList(ArrayList musicList) {
// this.musicList = musicList;
// }
//
//将歌曲添加到播放列表
public void addToPlayList(Song song){
list.add(song);
}
//显示播放列表中所有的歌曲
public void displayAllSong(){
Iterator<Song> it=list.iterator();
while(it.hasNext()){
Song song=it.next();
song.toString();
}
}
//通过ID查询歌曲
public void searchSongById(String id){
Iterator<Song> it=list.iterator();
while(it.hasNext()){
Song song=it.next();
if(id.equals(song.getId())){
System.out.println("有该歌曲");
song.toString();
}
}
}
//通过歌曲名查询歌曲
public void searchSongByName(String name){
Iterator<Song> it=list.iterator();
while(it.hasNext()){
Song song=it.next();
if(name.equals(song.getName())){
System.out.println("有该歌曲");
song.toString();
}
}
}
//修改歌曲
public void updateSong(int in,Song song){
list.set(in, song);
}
//删除歌曲
public void deleteSong(String id){
Iterator<Song> it=list.iterator();
while(it.hasNext()){
Song song=it.next();
if(id.equals(song.getId())){
list.remove(song);
System.out.println("以删除该歌曲");
}
}
}
}
=====================================================
public class PlayListCollection {
private Map playListMap;//存放播放器列表的集合
Scanner in=new Scanner(System.in);
// Map<String ,PlayList> map=new HashMap<String ,PlayList>();
public PlayListCollection(){//带参的构造方法
}
public PlayListCollection(Map playListMap){//带参的构造方法
this.playListMap=playListMap;
}
// set/get方法
public Map getPlayListMap() {
return playListMap;
}
public void setPlayListMap(Map playListMap) {
this.playListMap = playListMap;
}
//添加播放列表
public void addPlayList(String playList){
PlayListCollection plc=new PlayListCollection();
new PlayList().setPlayListName("主播放列表");
plc.setPlayListMap(playListMap);
}
//删除播放列表
public void deletePlayList(PlayList playList){
}
//通过名字查询
public PlayList searchPlayListByName(String PlayListName){
return null;
}
//显示所有播放列表名称
public void displayListName(){
}
}
==========================================================
正在回答
1、你的代码中泛型的使用是没有问题的。
2、list和map都是成员变量,定义完后在类中直接使用就可以了。而在类外只看到播放列表和播放列表的集合,看不到list和map,这就是把list和map封装到类中了
3、至于如何使用list和map,你在PlayList类中已经对list进行使用了。
PlayListCollection类的map使用有些问题。在PlayListCollection类中不用再去定义自己的对象,对于添加播放列表的代码,就是直接把方法参数PlayList的对象添加到集合map中,key值是播放列表的名称。这个方法既可以向PlayListCollection的对象添加主播放列表,也可以添加普通的播放列表。所以添加主播放列表的代码不写到这个方法中,而是在主方法中去完成,写到主方法的最开始,这样主播放列表就默认添加了。
PlayListCollection类的其他方法也是主要对map中存储的内容进行增删改查的操作。
祝学习愉快!
而在类外只看到播放列表和播放列表的集合,看不到list和map,这就是把list和map封装到类中了 这句话没理解明白,老师可以用代码演示下吗?
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星