打印所有数组值

时间:2010-11-15 15:22:14

标签: java

class ArrayApp{

    public static void main(final String[] args){

     long [] arr; 
     arr= new long[100];
     int i;
     arr[0]=112;
     arr[1]=111;
     for(i=0;i<arr;i++) {
     System.out.println(arr[i]);
     }

  } 
} 

我收到此错误,

ArrayApp.java:10: operator < cannot be applied to int,long[]
        for(i=0;i<arr;i++) {
                 ^

6 个答案:

答案 0 :(得分:5)

您需要使用数组的大小,即arr.length

for (int i = 0; i < arr.length; ++i)

从Java 1.5开始,如果只需要访问数组数据,也可以使用for循环。

for ( long l : arr )
{
    System.out.println(l);
}

答案 1 :(得分:2)

arr是long[]的对象,您无法将int与其进行比较。

尝试arr.length

或者你应该去

for(long item:arr){
System.out.println(item);
}

答案 2 :(得分:1)

您想要arr.length

答案 3 :(得分:1)

问题必须在context of a previous question

中看到

从前一个问题我记得你实际上在物理数组中有一个逻辑数组。逻辑数组的最后一个元素是不是 arr.length而是2,因为您已经“向逻辑数组中添加了”两个值。

在这种情况下,您不能使用array.length进行迭代,但是还需要另一个存储“最后一个值”(1的实际位置的变量,在您的情况下):

long[] arr; 
arr= new long[100];
int i;
arr[0]=112;
arr[1]=111;
int nElem = 2;  // you added 2 values to your "logical" array
for(i=0; i<=nElem; i++) {  
  System.out.println(arr[i]);
}

注意 - 我想,你实际上是在学习Java语言和/或编程。稍后你会发现不使用数组来完成这项任务比List对象更容易。与List等价的内容将如下所示:

List<Integer> values = new ArrayList<Integer>();
values.add(112);
values.add(111);
for (Integer value:values)
  System.out.println(value);

答案 4 :(得分:0)

Long arr = new Long[100];
 arr[0]=112;
 arr[1]=111;
for(int i=0;i<arr.length;i++) {
  if (arr[i] != null ) {
    System.out.println(arr[i]);
  }
}

如果你只想显示那些被填充的那些。

答案 5 :(得分:0)

您可以使用一行代码解决问题: Arrays.asList(arr).toString()。replace(“[”,“”).replace(“]”,“”).replace(“,”,“\ n”);

有关更多类似的技巧,请参阅http://java.dzone.com/articles/useful-abuse