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

文章讲述了在Java中不正确使用数组导致的索引越界问题,强调了数组必须声明长度的重要性,并给出了声明长度和使用Map作为替代的解决方案。作者分享了个人经历,因面试笔试复习基础而记录此内容。
摘要由CSDN通过智能技术生成

数组在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了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篆愁君的烦恼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值