java之集合ArrayList,LinkedList,HashMap运用
程序员文章站
2022-06-16 23:42:10
...
1、定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。
// 1、添加10首歌到ArrayList集合中
// 2、遍历所有的歌曲,显示歌曲信息
// 3、输入歌曲名,在集合中查找该歌曲
// 4、输入整数索引,删除该位置的歌曲
// 5、找出播放时间最长的歌曲
// 6、将所有歌曲复制到LinkedList集合中
public class Music {
// 1、定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。
// 1、添加10首歌到ArrayList集合中
// 2、遍历所有的歌曲,显示歌曲信息
// 3、输入歌曲名,在集合中查找该歌曲
// 4、输入整数索引,删除该位置的歌曲
// 5、找出播放时间最长的歌曲
// 6、将所有歌曲复制到LinkedList集合中
private String name;//歌手名
private String song;//歌曲名
private int time;//播放时长
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((song == null) ? 0 : song.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Music other = (Music) obj;
if (song == null) {
if (other.song != null)
return false;
} else if (!song.equals(other.song))
return false;
return true;
}
public Music() {
super();
}
public Music(String song, String name, int time) {
super();
this.name = name;
this.song = song;
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSong() {
return song;
}
public void setSong(String song) {
this.song = song;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
@Override
public String toString() {
return "Music [name=" + name + ", song=" + song + ", time=" + time + "]";
}
public void play(){
System.out.println("歌手名为:"+getName()+";歌曲名为:"+"《"+getSong()+"》"+";播放时长为:"+getTime()+"分");
}
}
public class TestMusic {
public static void main(String[] args) {
// 1、添加10首歌到ArrayList集合中
ArrayList<Music> list = new ArrayList<Music>();
list.add(new Music("绿色", "陈雪凝", 5));
list.add(new Music("烦恼歌", "张学友", 3));
list.add(new Music("我相信", "杨安培", 6));
list.add(new Music("停在昨天", "乔洋", 5));
list.add(new Music("我的世界", "陈姿彤", 7));
list.add(new Music("如果没有你", "莫文蔚", 4));
list.add(new Music("狗尾草", "安旭", 8));
list.add(new Music("老男孩", "筷子兄弟", 6));
list.add(new Music("泡沫", "邓紫棋", 9));
list.add(new Music("我的天空", "南征北战", 5));
// 2、遍历所有的歌曲,显示歌曲信息
Iterator<Music> iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next().play();
}
// 3、输入歌曲名,在集合中查找该歌曲
boolean flage = true;
for (Music music : list) {
if(music.getSong().equals("我的天空")){
flage = false;
System.out.print("此歌曲为:");music.play();
}
}
if(flage){
System.out.println("没有找到此歌曲");
}
// 4、输入整数索引,删除该位置的歌曲
list.remove(1);
list.get(1).play();
// 5、找出播放时间最长的歌曲
int max = list.get(0).getTime();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getTime() > max){
max = list.get(i).getTime();
}
}
System.out.println(max);
for (Music music : list) {
if(music.getTime() == max){
System.out.print("时间最长的歌曲为:");music.play();
}
}
// 6、将所有歌曲复制到LinkedList集合中
LinkedList<Music> linkedList = new LinkedList<>();
linkedList.addAll(list);
Iterator<Music> iterator2 = linkedList.iterator();
while (iterator2.hasNext()) {
iterator2.next().play();
}
}
}
2、将集合改为HashMap,将歌名作为键,歌曲作为值
public class Test1Music {
public static void main(String[] args) {
// 2、将集合改为HashMap,将歌名作为键,歌曲作为值
HashMap<String,Music> hashMap = new HashMap<>();
// 1、添加10首歌到集合中
hashMap.put("绿色",(new Music("绿色", "陈雪凝", 5)));
hashMap.put("烦恼歌", new Music("烦恼歌", "张学友", 3));
hashMap.put("我相信", new Music("我相信", "杨安培", 6));
hashMap.put("停在昨天", new Music("停在昨天", "乔洋", 5));
hashMap.put("我的世界", new Music("我的世界", "陈姿彤", 7));
hashMap.put("如果没有你", new Music("如果没有你", "莫文蔚", 4));
hashMap.put("狗尾草", new Music("狗尾草", "安旭", 8));
hashMap.put("老男孩", new Music("老男孩", "筷子兄弟", 6));
hashMap.put("泡沫", new Music("泡沫", "邓紫棋", 9));
hashMap.put("我的天空", new Music("我的天空", "南征北战", 5));
// 2、遍历所有的歌曲,显示歌曲信息
Iterator<String> iterator = hashMap.keySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key+","+hashMap.get(key));
}
// 3、输入歌曲名,在集合中查找该歌曲
System.out.println(hashMap.get("绿色"));
System.out.println("---------");
// 4、输入歌曲名,删除歌曲
hashMap.remove("烦恼歌");
Iterator<String> iterator1 = hashMap.keySet().iterator();
while (iterator1.hasNext()) {
String key1 = iterator1.next();
System.out.println(key1+","+hashMap.get(key1));
}
}
}