2012-09-23 75 views
0

我正在寻找“正确”的方式来解决Java中的数组问题: 我需要一个整数数组,而不需要知道最大值。Java整型数组未知大小

对申报绕过限制当前的解决方案:

private ArrayList<Integer> myArray = new ArrayList<>(); 

问题,这种解决方案:

myArray.get(i); 

想返回一个字符串,而不是一个int,我需要进一步的计算中的int ... 我应该与其他东西比一个ArrayList或我缺少别的东西? (我猜最后一个选项......)

+6

为什么它返回一个字符串?它应该返回Integer。如果你做int x = myArray.get(i)你会得到你需要的int,因为自动装箱/拆箱 –

+1

我没有看到ArrayList的任何问题 gtgaxiola

+1

'ArrayList <>()'没有事件编译。它应该是'ArrayList ()'。另外,'get()'绝对不会返回'String'! – verdesmarald

回答

1

是的,既然你不知道你想要你的阵列有多少物品,你应该使用ArrayList。此外myArray.get(i)确实会返回一个int,只是尝试

ArrayList<Integer> list = new ArrayList<Integer>(); 
list.add(3); 
int a = myArray.get(0); // autoboxing 
System.out.println(a); 
+0

我重新输入了有问题的代码,现在确实可以编译没有任何问题。感觉有点愚蠢,如果它只是一个错字... – Crimson

+0

@Crimson是的,这可能是它是什么。但请记住:这发生在我们最好的人身上:-)。 – arshajii

0

ArrayList是正确的。它不会返回一个字符串,它会返回整数。虽然由于自动装箱,你可以自动从它获得一个int。

int x = myArray.get(i); 

返回一个Integer对象,并将包含的int传递给您的变量。

0

首先这是错误的的Java6

private ArrayList<Integer> myArray = new ArrayList<>(); 

应该

private ArrayList<Integer> myArray = new ArrayList<Integer>(); 

你反正得到一个编译器错误等等我认为它是一个错字。 和你的代码将绝对返回整数,如果你做

myArray.get(i); 
+1

不在JAVA 7你不会得到编译器错误 – gtgaxiola

+0

@gtgaxiola很高兴知道。我真的不使用Java 7 ..谢谢反正 – PermGenError