Java 使用.intValue错误吗?
因此,我一直在尝试获取整数数组的平均值,但我的方法没有发挥最大的作用,因为我试图将对象引用适配到基元中。。我试着使用intValue,但我认为我用错了。。有什么想法吗Java 使用.intValue错误吗?,java,arrays,integer,quicksort,Java,Arrays,Integer,Quicksort,因此,我一直在尝试获取整数数组的平均值,但我的方法没有发挥最大的作用,因为我试图将对象引用适配到基元中。。我试着使用intValue,但我认为我用错了。。有什么想法吗 //Variation 3 - Choose Mean as pivot private static int getMeanIndexAsPivotIndex(Comparable comparableArray[],int leftIndex, int rightIndex) { int
//Variation 3 - Choose Mean as pivot
private static int getMeanIndexAsPivotIndex(Comparable comparableArray[],int leftIndex, int rightIndex) {
int sum = 0;
int add = 0;
for (int i = 0; i < comparableArray.length; i++) {
add = comparableArray[i].intValue();
sum += add;
}
return sum / comparableArray.length;
}
这是我制作数组的地方
//Random Array
Integer[] unsortedArray = new Integer[8];
for (int i = 0; i < unsortedArray.length; i++) {
unsortedArray[i] = randomRange(0,1000);
}
QuickSort.java:157: error: cannot find symbol
add = comparableArray[i].intValue();
^
symbol: method intValue(int)
location: interface Comparable
Note: QuickSort.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
根据您的签名comparableArray是Comparable[]类型而不是Integer[],此类型没有.intValue方法
将方法签名更改为使用整数[]应该可以解决此问题 详细阐述@EricBouwers的答案 类整数扩展了类编号并实现了可比较接口,即类声明为
public final class Integer extends Number implements Comparable<Integer>
但是arr将无法调用intValue,因为它是Compariable类型而不是Integer类型。它将能够调用compareTo
您不能这样写:
Comparable<Integer>[] arr = new Integer[]{1,2,3};
Integer[] arr = new Comparable<Integer>[]{1,2,3};
然后您可以在arr上调用intValue和compareTo。是的,这很有效!但现在我有一个ArrayIndexOutofBound异常--。谢谢你!
Integer[] arr = new Integer[]{1,2,3};