Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException(数组创建问题)

发布时间:2024年01月12日

数组在Java中使用还是比较多的,通过索引去数组中寻值,也可以通过数组索引去赋值

问题描述:

我们在直接使用未被new的数组时就会出现这种情况,

?这边简单创建一个运行类

public class a {
    public static void main(String[] args) {
        int[] a={};
        for(int i=0;i<100;i++){
            a[i]=i;
            System.out.println(a[i]);
        }
        System.out.println("a:"+a);
    }
}

运行之后,就会出现以上错误

问题分析:

可以看,我在这边是未对数组a就行new的,只是赋值,所以编辑器默认我是这么用的,因而它不会报错。但是当我们去运行的时候,就会出现数组索引越界问题。因为我并没有声明数组的范围,或者说长度。它是默认为0的。这也是为什么我们使用索引赋值会出现问题的原因。

注:数组必须声明长度才能使用,或者赋值(其实赋值也是声明长度了)

如果需要一对一关系可以使用Map来解决,它不用声明长度,采用键值对来存储

解决方法:

声明数组长度或复制

声明长度:

import java.util.ArrayList;
import java.util.List;

public class a {
    public static void main(String[] args) {
        int[] a=new int[10];
        for(int i=0;i<a.length;i++){
            a[i]=i;
        }
        for (int b:a){
            System.out.println(b);
        }
    }
}

?另外赋值,我在Java声明数组的三种方法_java声明一个数组-CSDN博客中写过了

小记:

我这边简单说一下我为什么写这篇,最近准备找实习,做笔试的时候遇到这个问题,运行半天都是出错,说到底还是自己基础不太牢靠,或者说之前学的都忘了。还是太长时间不用数组了。还亏自己之前写过一个Java数组创建的三种方法【苦笑】,这边就简单记一下,以慰藉自己那两个笔试(肯定G了)

文章来源:https://blog.csdn.net/m0_52228992/article/details/135559160
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。