JAVA SE基础

时间:2017-06-19 07:59:29

标签: java

compareTo()方法实际上如何运作? 我甚至看过API文档,但我仍然没有得到它。 另外,如果传递给该方法的歌曲是ArrayListSong个对象,该怎么办?

class Song implements Comparable<Song> {
    String title;
    String artist;
    String rating;
    String bpm;

    public int compareTo(Song s) {
        return title.compareTo(s.getTitle());
    }

    Song(String t, String a, String r, String b) {
        title = t;
        artist = a;
        rating = r;
        bpm = b;
    }

    public String getTitle() {
        return title;
    }
    public String getArtist() {
        return artist;
    }
    public String getRating() {
        return rating;
    }
    public String getBpm() {
        return bpm;
    }
    public String toString() {
        return title;
    }
}

1 个答案:

答案 0 :(得分:0)

关于接口

Comparableinterface。如果一个类implements是一个接口,那么该类必需来实现定义(&#34;实现&#34;)已经<的方法在界面中强>声明。 实施方法需要匹配 method signature

Comparable<Song>接口声明了一个方法int compareTo(Song)。这是方法签名

在您的代码中,您必须实施使用相同签名的方法。就我所知,这正是你所做的。 :)

您的实现只是调用compareTo()的{​​{1}}方法(字符串实现String,这就是为什么这样做)。 Comparable<String> String的{​​{1}}实施只是按字典顺序比较两个字符串,如Official Java Documentation中所述。

为什么要使用接口?

接口是在类中预定义行为的好方法。例如,Java中的Comparable<String>接口包含列表的预定义行为。该接口有许多不同的实现,在特定场景中具有更好的性能(例如ArrayList,LinkedList)。

希望这有助于:)