【问题标题】:wrong array length in javajava中的数组长度错误
【发布时间】:2013-02-21 05:54:27
【问题描述】:

我定义了一个用 12 个元素初始化的数组,但是它的 length 属性的值被 JVM 设置为 10,我无法访问第 11 个和第 12 个元素。我应该怎么做才能解决问题? 假设这个数组定义如下:

private static final Type[] p = new Type[]{ null, null, null, null, null, null, null, null, null, null, null, null }; 

在某些函数中我使用 Type x = p[11];然后我得到上述异常

【问题讨论】:

  • 请出示您的代码。
  • 请出示您的代码并清楚您想问什么。
  • 你可能数错了。
  • 我个人觉得,与其让 4-5 个人说相同的评论“向我们展示您的代码”,您还可以投票赞成“向我们展示您的代码评论”:)
  • 我保证JVM没有做过这样的事情。

标签: java arrays


【解决方案1】:
public static void main(String[] args) {
    int[] arr ={1,2,3,4,5,6,7,8,9,10,11,12};
    System.out.println(arr[11]);
}

这将打印 12。数组索引从 0 开始到 arr.lenghth-1。所以如果你想访问 arr[12] 你会得到 java.lang.ArrayIndexOutOfBoundsException。

public class SetTest {
private static final String[] arr1 = { null, null, null, null, null, null,
        null, null, null, null, null, null };

public static void main(String[] args) {
    String p = arr1[11];
    System.out.println(p);
    System.out.println(arr1.length);

}
}

输出:

null
12

【讨论】:

  • 我认为这不是上述问题的答案
  • @PradeepSimha 我认为 OP 想使用 arr[12] 访问数组内的第 12 个元素。所以我写了上面的答案。
  • 但它的长度属性的值设置为10所以我们仍然不清楚问题。
  • 假设我有一些字段定义为:private static final Type[] p = new Type[]{ null, null, null, null, null, null, null, null, null, null, null , 无效的 };在某些函数中,我使用 Type x = p[11];然后我得到上述异常
  • @user1723583 我尝试使用 String 并且效果很好。请参阅上面的代码并输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
相关资源
最近更新 更多