gpt4 book ai didi

java - 使用抽象类时如何使用比较器?

转载 作者:行者123 更新时间:2023-12-02 01:01:27 25 4
gpt4 key购买 nike

我尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com