如何在arraylist中获得歌曲名称和评级?

时间:2013-12-10 17:03:58

标签: string arraylist int

如何制作带有歌曲名称和评级的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);
    }
}
}

1 个答案:

答案 0 :(得分:0)

我将定义一个名为Song的新类,它有两个字段:一个指定歌曲名称的String和一个歌曲评级的整数。覆盖默认的compareTo()方法,以便可以按其评级对歌曲进行比较。然后,您可以将歌曲放入ArrayList并使用Collections.max()等方法获得评分最高的歌曲。祝你好运。