我有这个代码用于数组...然后重新阅读指令,找到它专门调用数组LIST。我似乎无法将下面的方法转换为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(intArr.get(i) < minValue)
{ minValue = intArr.get(i);
}
}
return minValue;
}
答案 0 :(得分:2)
尝试按
中的方式转换检索到的对象int minValue = (Integer) intArr.get(0);
再次使用
if((Integer)intArr.get(i) > minValue)
答案 1 :(得分:1)
在方法声明中,更改:
...(ArrayList intArr) {
至 ...(ArrayList<Integer> intArr) {
。这将使intArr
Integer
中的元素成为Object
s而不是unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
StaticArray = Array[0..1000] of Double;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DArray: Array of StaticArray;
Length : Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Length:=5;
Setlength(DArray, Length);
end;
end.
。要了解有关Java中泛型的更多信息,请查看The Java™ Tutorials on Generics。
答案 2 :(得分:0)
由于您的ArrayList仅适用于int值,您应该在方法参数中指定ArrayList的类型:
public static int returnMin(ArrayList<Integer> intArr) {
.
.
.
}
为什么要指定类型?
如果你没有指定,你的ArrayList将接受任何值(String,Integers和任何其他值),所以当你使用arrayList.get(0)时,你不知道该位置是什么类型,那是为什么在你的例子中你必须将它转换为Integer。总是当您只使用一种类型时,您应该指定列表的类型以避免这种情况。
泛型教程:
https://docs.oracle.com/javase/tutorial/java/generics/why.html