我正在尝试使用这一行在Java中对一些数组进行排序:
a = sortFacade.sort(2, false, a);
其中'a'是已经初始化的int数组。当我尝试编译它时,我被告知2是长的,而不是int。我已经尝试用(int)2投射它而没有运气。
我也试过了这行
sortFacade.sort(2, false, a);
并且代码编译。
有没有人知道修复此问题?
编辑:这是我在终端收到的消息:
Experimenter.java:146: incompatible types
found : long
required: int[]
a = sortFacade.sort(2, false, a);
^
此行可在以下代码中找到:
public static void Experiment1()
{
for(int size = 5000; size <= 100000; size = size + 5000)
{
int[] a randomArray(size, 1000); //a random array of size 'size' and values from 1 - 1000
a = sortFacade.sort(2, false, a);
/** This is where the error occurs. 2 specifies insertion sort (error occurs
with other acceptable numbers here as well,false specifies descending
order, 'a' specifies the array to be sorted.*/
}
}
SortFacade是一个与我所有不同排序算法交互的外观。 2是一个可接受的值,并且调用相同的方法(使用不同的参数)可以在代码的其他部分中工作。
答案 0 :(得分:1)
这基本上是为自己说话。
Experimenter.java:146: incompatible types
found : long
required: int[]
你自己说变量a
是一个整数数组。上面的错误告诉您虽然该方法返回long
,但您需要它返回整数数组int[]
,因为您尝试将long
值分配给a
答案 1 :(得分:0)
如果a
是int[]
数组,那么您收到的错误似乎是因为sortFacade.sort
的返回类型为long
而您正在尝试将它分配给a
数组 - 这是非法的。
sortFacade.sort(2, false, a);
编译的原因是因为您没有将其分配给任何内容。如果你说:long b = sortFacade.sort(2, false, a);
它应该编译并运行。