compareTo()
方法实际上如何运作?
我甚至看过API文档,但我仍然没有得到它。
另外,如果传递给该方法的歌曲是ArrayList
个Song
个对象,该怎么办?
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;
}
}
答案 0 :(得分:0)
Comparable
是interface。如果一个类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)。
希望这有助于:)