2010-11-15 61 views
1
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++) { 
       ^

回答

5

你需要使用數組,這將是arr.length的大小。

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

從Java 1.5開始,如果您只是需要訪問數組數據,那麼您也可以使用for each循環。

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

你想arr.length

+0

現在,如果我只想顯示已填充的值並且不顯示剩餘的沒有任何值的塊。 – theband 2010-11-15 15:24:49

+0

然後在打印值之前進行檢查,問題是什麼? – Malcolm 2010-11-15 15:27:37

2

ARR是long[]一個對象,你不能和它相比int

嘗試arr.length

或者你應該去

for(long item:arr){ 
System.out.println(item); 
} 
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]); 
    } 
} 

,如果你想只顯示那些被填充。

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的equaivalent看起來就像這樣:

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

可以解決使用一行代碼您的問題: Arrays.asList(ARR)的ToString()代替( 「[」, 「」).replace (「]」,「」).replace(「,」,「\ n」);

請參閱http://java.dzone.com/articles/useful-abuse更多類似的技巧。