如何制作带有歌曲名称和评级的arraylist?现在我只是在歌曲名称的前面加上一个数字,然后使用子字符串来提取评级,但我需要对评级进行排序并找到评分最高的歌曲 - 这在我的世界里非常复杂(使用这种方法) 。任何方式链接歌曲和评级(1-5)?我正在考虑关联列表,但如果这是唯一的方法,那对我的技能来说太复杂了。我们非常欢迎所有的建议。提前谢谢。
这是我的主要方法:
// Create band
Band Beatles = new Band("Beatles");
// Add musicians
Beatles.musician.add("John Lennon");
Beatles.musician.add("Paul McCartney");
Beatles.musician.add("George Harrison");
Beatles.musician.add("Ringo Starr");
// Add songs (first number is popularity of the song)
Beatles.songs.add("5Yesterday");
Beatles.songs.add("5Let it be");
Beatles.songs.add("3I Saw Her Standing There");
Beatles.songs.add("2Misery");
Beatles.songs.add("4Love Me Do");
//Prints out all songs by Beatles, and their rating
System.out.println(Beatles.musician);
Beatles.getBandSongs();
这是我的Band类:
import java.util.ArrayList;
public class Band {
public String bandName;
public ArrayList<String> musician = new ArrayList<String>();
public ArrayList<String> songs = new ArrayList<String>();
// Constructor
public Band(String bandName) {
this.bandName = bandName;
}
public void getBandSongs(){
for (String s : songs) {
int rating = Integer.parseInt(s.substring(0,1));
s = s.substring(1);
System.out.println("Rating: " + rating + " - Song name: " + s);
}
}
}
答案 0 :(得分:0)
我将定义一个名为Song的新类,它有两个字段:一个指定歌曲名称的String和一个歌曲评级的整数。覆盖默认的compareTo()方法,以便可以按其评级对歌曲进行比较。然后,您可以将歌曲放入ArrayList并使用Collections.max()等方法获得评分最高的歌曲。祝你好运。