gpt4 book ai didi

Java:类型不匹配:无法从 null 转换为 int

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

我想创建一个方法来检查两个数组是否相同(不使用任何导入)。顺序并不重要,它可以包含重复项,并且两个数组需要保持相同!我的想法是复制第一个数组,然后将复制数组与第二个数组进行比较。如果我找到有效的对,请从复制数组中删除该项目,以便它可以处理重复项。但由于类型不匹配,我无法删除任何项目。我的代码:

解决方案.java

public class Solution {

public static boolean areTheyTheSame(int[] a, int[] b)
{

if (a.length == b.length)
{

//fill the temp array with the elements of a
int temp[] = new int[a.length];

for (int i = 0 ; i < a.length ; i++)
{
temp[i] = a[i];
}

//check if the temp array and the b array are the same
for (int i = 0 ; i < a.length ; i++)
{
for (int j = 0 ; j < a.length ; j++)
{
if (temp[i] == b[j])
{
temp[i] = null; // Type mismatch: cannot convert from null to int
}
else
{
return false;
}
}
}

return true;

}
return false;
}
}

测试.java

public class Test {

public static void main(String[] args) {

int[] a = new int[]{121, 144, 19, 161, 19, 144, 19, 11};
int[] b = new int[]{121, 19, 19, 144, 161, 144, 11, 19};

if (Solution.areTheyTheSame(a, b) == true)
{
System.out.println("Equal");
}
else
{
System.out.println("Not equal");
}

}

}

最佳答案

这里有一些问题:

您正在数组中使用“原始”int。这不是一个对象,因此不能将其设置为“null”。

如果你想这样做,请使用“Integer temp[];” (您可以将其余部分保留为 int)。 Java 会自动在 int 和 Integer 之间进行转换,因此您不必担心那里的类型转换。其他原语(不能为“null”)是 boolean 型、长整型、 double 型和浮点型。

您没有比较最终的临时数组

设置数组后,无需检查所有内容是否为空。添加额外检查后,它应该可以正常工作。

关于Java:类型不匹配:无法从 null 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59993765/

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