我有一个名为classes
的班级,他有这种比较方法:
@Override
public int compareTo(Object other) {
Cours ot = (Cours)other;
String heure2 = ot.heure;
int autre = Integer.parseInt(heure2.substring(0,2));
int le = Integer.parseInt(this.heure.substring(0,2));
if (autre > le) {
return 1;
}
if (autre == le) {
return 0;
} else {
return -1;
}
}
我有另一个名为day
的班级,其列表为classes
:
private List<Cours> journee;
一种对类进行排序的方法:
public void TrieListe() {
Collections.sort(journee);
}
当我使用TrieListe()
时,一切正常,我可以对列表进行排序。
但是我添加了另一个名为Weeks
的类,其中包含Days
列表
现在我想使用该类中的TrieList():
private List<Days> leWeek;
public void TrieListe() {
Collections.sort(leWeek);
}
那么如何在我的compareTo
类中使用sort()从我的classes
类中使用我的Weeks
方法。
答案 0 :(得分:0)
创建一个新的abstract
类AComparableByHour
并让您的类扩展它。
public abstract class AComparableByHour implements Comparable<AComparableByHour> {
public abstract String getHeure();
// Your comparison method goes here
@Override
public int compareTo(AComparableByHour ot) {
String heure2 = ot.getHeure();
int autre = Integer.parseInt(heure2.substring(0,2));
int le = Integer.parseInt(this.getHeure().substring(0,2));
if( autre > le){
return 1;
}
if( autre == le){
return 0;
} else {
return -1;
}
}
}
public class Cours extends AComparableByHour {
// This method is mandatory now.
// You could move it to the new superclass
public String getHeure() {
return heure;
}
...
}
public class Days extends AComparableByHour {
public String getHeure() {
return heure;
}
...
}
答案 1 :(得分:0)
我有一个名为
classes
的班级,他有这种比较方法:
@Override
public int compareTo(Object other) {
这已经错了。你的类应该实现Comparable<classes>
(注意classes
是一个真正可怕的类名,至少有三个不同的原因),这将迫使方法签名为:
@Override
public int compareTo(classes other) {