我尝试使用 compareTo
并实现 Comparable
接口(interface),但我找不到一种方法来比较两个对象,以便它返回一个整数(-1,如果第一个对象小于第二个对象,如果它们相等则为 0,如果对象 1 大于对象 2,则为 1)。
这是我尝试过的:
public class MyArrayList<E> {
private Object[] array;
private int size;
private int capacity;
public MyArrayList() {
this.capacity = 1000;
this.array = new Object[capacity];
this.size = 0;
}
public boolean add(E element) {
int i = 0;
while(element.compareTo(array[i]) > 0) {
i++;
}
this.set(i, element);
return true;
}
}
我基本上是在尝试使用可比较的对象对 MyArrayList 进行排序。您知道我还可以通过哪些其他方式来比较这两个对象吗? 谢谢!
最佳答案
您只需接受实现 Comparable
接口(interface)的类。
public class MyArrayList<E extends Comparable<E>> {
之后,您需要将 compareTo
调用中的参数转换为 E
,因为 array
的类型为 对象
类型。
public boolean add(E element) {
int i = 0;
while (element.compareTo((E) array[i]) > 0) {
i++;
}
this.set(i, element);
return true;
}
关于java - 使用抽象类时如何使用比较器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60588832/