用java编写数组求和,array[]和ArrayList()?

大家好,在这里想请问大家一个java问题,具体如下:程序1public class A11{ public static void main(String args[]) {  int a[]={1,2,3};  int sum=0;  for(int i=0;i<a.length;i++)   sum+=a[i];  System.out.print(sum); }}运行结果:6 程序2import java.util.*;public class A10 { public static void main(String args[]) {  ArrayList li=new ArrayList();  li.add(1);  li.add(2);  li.add(3);  Object al[]=li.toArray();  int sum=0;  for(int i=0;i<al.length;i++)   sum+=((Integer)al[i]).intValue();   //为什么这里不能用     sum+=al[i];  System.out.print(sum); }}为什么在第二程序不能用    sum+=al[i];难道用ArrayList建立的数组一定需要用sum+=((Integer)al[i]).inValue();

第1个回答  2012-02-20
这个很简单。在第一个例子中你定义的数组的类型是int类型,sum+=a[i] 就是正确的。
而在第二个例子中你将 ArrayList li转化成了Object的数组。在编辑的sum+=a[i] 报编译异常The operator += is undefined for the argument type(s) int, Object, 意思就是说Object的类型不能直接的用来进行+=运算。一般是在运算是进行类型转换。就是你用的这个方法((Integer)al[i]).intValue();
相似回答