gpt4 book ai didi

java - 如何重写compareTo Double方法?

转载 作者:行者123 更新时间:2023-12-02 02:14:41 29 4
gpt4 key购买 nike

我尝试重写 compareTo 方法,但我看到编译器使用 Java.lang.Double.compareTo 方法而不是我的 compareTo
这里出了什么问题,我应该修复和更改什么以便使用我自己的 compareTo 方法?

package GenerecEx;
import java.util.ArrayList;
import java.util.Collections;

public class ArraySort implements Comparable{

double val;
static ArrayList<Double> a=new ArrayList<Double>();

public static void main(String[] args) {
a.add(2.4);
a.add(8.4);
a.add(9.4);
a.add(4.4);
a.add(6.4);

sort(a);
printList(a);

}

public static void printList(ArrayList a1)
{
System.out.println(a1.toString());
}

static public void sort(ArrayList <Double> a1)
{
for (int i=0;i<a1.size();i++){
for(int j=0;j<a1.size()-i-1;j++){
if (a1.get(j).compareTo(a1.get(j+1))>0){
double temp = a1.get(j);
a1.set(j,a1.get(j+1) );
a1.set(j+1, temp);
}
}
}

}
@Override
public int compareTo(Object element)
{
if (this.val < (Double) element)
return -1;
else return 1;
}
}

最佳答案

实现Comparable接口(interface)允许您重写实现类上的compareTo方法。在 ArraySort 类上实现 Comparable 后,您的 compareTo 方法实际上应该比较 ArraySort 类型的对象,而不是泛型对象Object 转换为 Double

关于java - 如何重写compareTo Double方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49472782/

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