Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么会出现“不兼容类型错误”?_Java_Arrays_Int_Double_Incompatibility - Fatal编程技术网

Java 为什么会出现“不兼容类型错误”?

Java 为什么会出现“不兼容类型错误”?,java,arrays,int,double,incompatibility,Java,Arrays,Int,Double,Incompatibility,代码如下: double[] hundredElementsMillionArray = new double[10000000]; for(double ii=0;ii<10000000;ii++){ hundredElementsMillionArray[ii] = ii; } double[]hundredElementsMillionArray=新的双精度[10000000]; 对于(double ii=0;ii数组的索

代码如下:

double[] hundredElementsMillionArray = new double[10000000]; 

        for(double ii=0;ii<10000000;ii++){
            hundredElementsMillionArray[ii] = ii;
        }
double[]hundredElementsMillionArray=新的双精度[10000000];

对于(double ii=0;ii数组的索引总是
int
,因此
hundredElementsMillionArray[ii]
需要将
ii
转换为
int
,但由于这种转换可能会导致信息丢失,因此在没有显式转换的情况下是不允许的

这将通过以下步骤:

double[] hundredElementsMillionArray = new double[10000000]; 
for(double ii=0;ii<10000000;ii++){
    hundredElementsMillionArray[(int) ii] = ii;
}
double[]hundredElementsMillionArray=新的双精度[10000000];

对于(double ii=0;ii数组的索引总是
int
,因此
hundredElementsMillionArray[ii]
需要将
ii
转换为
int
,但由于这种转换可能会导致信息丢失,因此在没有显式转换的情况下是不允许的

这将通过以下步骤:

double[] hundredElementsMillionArray = new double[10000000]; 
for(double ii=0;ii<10000000;ii++){
    hundredElementsMillionArray[(int) ii] = ii;
}
double[]hundredElementsMillionArray=新的双精度[10000000];

对于(double ii=0;ii数组索引不能是
float
double
它必须是
integer

因此,您必须将
typecast
转换为
int
作为
hundredElementsMillionArray[(int)ii]
,否则最好的解决方案是您应该使用索引变量作为
int
类型。

数组索引不能是
float
double
它必须是
integer

因此,您必须将
typecast
转换为
int
as
hundredElementsMillionArray[(int)ii]
或者最好的解决方案是您应该使用索引变量作为
int
类型。

您的代码不会编译,因为数组的索引从来都不是双精度的。我不是java专家,但双精度ii可能应该是int ii。试试这个
int ii=0;ii您的代码不会编译,因为数组的索引从来都不是双精度的。我不是java exp但是double ii应该是int ii。试试这个
int ii=0;ii