Java 从ArrayList返回值
我让这段代码为一个数组工作……然后重新阅读指令,找到它特别需要一个数组列表。我似乎无法将下面的方法转换为ArrayList可接受的方法…请帮助我如何更改措辞…请参阅下面的示例方法:Java 从ArrayList返回值,java,arraylist,Java,Arraylist,我让这段代码为一个数组工作……然后重新阅读指令,找到它特别需要一个数组列表。我似乎无法将下面的方法转换为ArrayList可接受的方法…请帮助我如何更改措辞…请参阅下面的示例方法: public static int returnMin(ArrayList intArr) { //Return the Min Value. int minValue = intArr.get(0); for(int i=1;i < intArr.size(); i = i+1){ if(intA
public static int returnMin(ArrayList intArr)
{ //Return the Min Value.
int minValue = intArr.get(0);
for(int i=1;i < intArr.size(); i = i+1){
if(intArr.get(i) < minValue)
{ minValue = intArr.get(i);
}
}
return minValue;
}
publicstaticintreturnmin(arraylistintarr)
{//返回最小值。
int minValue=intArr.get(0);
对于(int i=1;i
尝试按中的方式强制转换检索到的对象
int minValue = (Integer) intArr.get(0);
再加上
if((Integer)intArr.get(i) > minValue)
尝试按中的方式强制转换检索到的对象
int minValue = (Integer) intArr.get(0);
再加上
if((Integer)intArr.get(i) > minValue)
在方法声明中,更改:
..(ArrayList intArr){
到..(ArrayList intArr){
这将使
intArr
中的元素成为整数,而不是对象。要了解java中泛型的更多信息,请查看。在方法声明中,更改:
..(ArrayList intArr){
至..(ArrayList intArr){
这将使intar
Integer
s中的元素不是对象
s。要了解java中泛型的更多信息,请查看。由于ArrayList仅使用int值,您应该在方法参数中指定ArrayList的类型:
publicstaticintreturnmin(arraylistintarr){
.
.
.
}
为什么要指定类型?
如果不指定,ArrayList将接受任何值(字符串、整数和任何其他值),因此在使用ArrayList.get(0)时您不知道处于该位置的是什么类型,这就是为什么在您的示例中必须将其转换为整数的原因。通常,当您仅使用一种类型时,您应该指定列表的类型以避免这种情况
泛型教程:
由于ArrayList仅适用于int值,因此应在方法参数中指定ArrayList的类型:
publicstaticintreturnmin(arraylistintarr){
.
.
.
}
为什么要指定类型?
如果不指定,ArrayList将接受任何值(字符串、整数和任何其他值),因此在使用ArrayList.get(0)时您不知道处于该位置的是什么类型,这就是为什么在您的示例中必须将其转换为整数的原因。通常,当您仅使用一种类型时,您应该指定列表的类型以避免这种情况
泛型教程:
如果您发布了错误消息,它与不兼容的类型有关——对象无法转换为int minValue=intArr.get(0),则会有所帮助;^二进制运算符“@archimot”的操作数类型错误。您可能希望使用类型化集合。例如,ArrayList。与错误类型有关。我无法将其转换为ArrayList…即使ArrayList始终引用整数,但它不喜欢任何试图说它是inte的东西ger(int-minValue=intar.get(0)或intar.get(i)minValue)更新了我的答案,但正如@km1所提到的,如果你使用泛型或者使用泛型,那么你就不必强制转换。returnMin(ArrayList intArr)@scarywombat使用你的建议,我认为这只是在比较中有一个错误--if(intArr.get(I)>minValue)更新了我的答案,但正如@km1所提到的,如果使用泛型会更好