java之集合ArrayList
Posted hongfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之集合ArrayList相关的知识,希望对你有一定的参考价值。
编程题,定义歌曲类,属性:歌曲名、歌手名、播放时长(int 类型),定义play方法显示歌曲信息。
1、添加10首歌到ArrayList集合中
2、遍历所有的歌曲,显示歌曲信息
3、输入歌曲名,在集合中查找该歌曲
4、输入整数,删除该位置的歌曲
5、找出播放时间最长的歌曲
Music类
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()+"min\\n");
}
}
TestMusic类
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
public class TestMusic {
public static void main(String[] args) {
// 1、添加10首歌到ArrayList集合中
ArrayList<Music> list;
list = new ArrayList<Music>();
list.add(new Music("肖邦即兴幻想曲", "李云迪", 5));
list.add(new Music("第2号匈牙利狂想曲", "李斯特", 12));
list.add(new Music("天鹅湖", "柴可夫斯基", 6));
list.add(new Music("巴赫C大调前奏曲", "巴赫", 3));
list.add(new Music("Nocturne NO.1 in B-Flat-Minor,op.9 - 1", "肖邦", 7));
list.add(new Music("拉赫玛尼诺夫第二钢琴协奏曲", "朗朗", 19));
list.add(new Music("Liebestraum", "李斯特", 8));
list.add(new Music("舒伯特小夜曲", "吕思清", 6));
list.add(new Music("升C小调圆舞曲", "肖邦", 7));
list.add(new Music("柴可夫斯基第一钢琴协奏曲", "朗朗", 10));
// 2、遍历所有的歌曲,显示歌曲信息
System.out.println("首先遍历所有的歌曲,显示歌曲信息:\\n");
Iterator<Music> iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next().play();
}
// 3、输入歌曲名,在集合中查找该歌曲
System.out.println("假设输入柴一钢协,在集合中查找该歌曲:\\n");
boolean flage = true;
for (Music music : list) {
if(music.getSong().equals("柴可夫斯基第一钢琴协奏曲")){
flage = false;
System.out.print("此歌曲已找到!歌曲信息为:\\n");music.play();
}
}
if(flage){
System.out.println("抱歉,没有找到此歌曲");
}
// 4、输入整数索引,删除该位置的歌曲
System.out.println("输入索引号1,删除歌曲《第2号匈牙利狂想曲》\\n");
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集合中
System.out.println("完成以上操作后,将所有歌曲复制到LinkedList集合中,结果为:");
LinkedList<Music> linkedList = new LinkedList<>();
linkedList.addAll(list);
Iterator<Music> iterator2 = linkedList.iterator();
while (iterator2.hasNext()) {
iterator2.next().play();
}
}
}
学习参考链接:
https://blog.csdn.net/u013343...
https://blog.csdn.net/weixin_...
以上是关于java之集合ArrayList的主要内容,如果未能解决你的问题,请参考以下文章