public class Sorting {
Vector<Talk> sorty(Vector <Talk> s) {
Collections.sort(s);
return s;
}
}
我需要对 Talk
类的对象进行排序,但我一直收到错误
“绑定(bind)不匹配”。
Talk Class是这样的:
public class Talk {
String name;
int duration;
public int compareTo(Talk t) {
int compare = t.duration;
return this.duration - compare;
}
}
最佳答案
如果你想对包含它的列表进行排序,你的 Talk
类需要实现 Comparable
接口(interface):
public class Talk implements Comparable<Talk> {
请注意,通过将它们相减来比较 int
值是不安全的,除非您知道这两个值只会是正数(或不超过 Integer.MAX_VALUE
分开,准确地说)。原因是 int
会溢出并错误地变为负值,如果值比这更远。不会经常发生,但如果它真的发生了,就很难追踪错误,所以最好让自己习惯于替代方案。
更好的比较方法是调用 Integer.compare(int, int)
:
public int compareTo(Talk t) {
return Integer.compare(duration, t.duration);
}
关于java - 在对对象 vector 进行排序时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35170395/