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++) {
^
答案 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。