精华内容
下载资源
问答
  • java 数组下标越界异常(ArrayIndexOutOfBoundsException) java 数组下标越界异常(ArrayIndexOutOfBoundsException)
  • 数组下标为什么从0开始:a.初步理解:b.加深理解: 1.数组的由来: // 变量声明 int a = 1; int b = 2; int c = 3; int d = 4; ... int n = 20; // 一个int类型4个字节,一个字节占8位 a.字面引申: ...

    1.数组的由来:

    // 变量声明
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    ...
    int n = 20;
    
    // 一个int类型4个字节,一个字节占8位
    

    a.字面引申:

    看到上面的这些int数据,都是int类型,有人就想,既然都是一种类型,为什么不能把他们放在一起?用一个变量接收就行了,每一次还要取一个名字(a,b,c,d…),特别麻烦!!

    b.通俗解释:

    课间操的时候,广播员让某某班赶紧下来,而不是一个一个叫学生名字,让学生下来集合!
    班级里,每个学生都有座位号:
    一个年级多个班:int-a班,long-b班
    在这里插入图片描述

    int[]  a= {1,2,3,4,5,6,7,8,9,10}
    long[]  b = {11,12,13,14,15,16,17,18,19,20}
    

    每个班级就像一个数组;
    而且每个班的座位就只有那么些个!!

    数组的特点:

    1.同类型元素
    2.固定大小(座位有限)

    位置有限,那么ArrayList当然得顺应民意出来咯,毕竟数组的长度有限没那么容易,解决问题也是不怎么方便!!

    理解不可扩容:因为在创建数组的时候,你说你要3个位置,那么计算机给你3个位置,第四个位置可能被别人申请走了,计算机不可能说,你申请3个位置,他给你多预留2个位置给你,以防你扩容用。想法是美好的,要是预留的位置你不用,那不是浪费了??

    2.数组下标为什么从0开始:

    int[] a = new int[5];
    

    a.初步理解:

    a.上面的int数组申请5片连续的空间地址,就像盗墓的机关门一样,连续的!
    b.盗墓的机关门,先看见第一个门,然后才能见到另一扇门,数组的空间和机关门类似,如图:
    在这里插入图片描述

    c.第一扇门,为了记住门,不迷路,于是你给门上弄了一个1001的门牌号:1001门开了
    d.闯过1001,你的脚踏入下一道门,为了记住自己走过多少道门,只有每走一扇门,就在第一道门上累加:

    第几扇门		       地址  索引  最终地址
    第二扇门记做int[1]1001 + 1 = 1002
    类推:
    第三扇门记做int[2]1001 + 2 = 1003
    第四扇门记做int[3]1001 + 3 = 1004
    第五扇门记做int[4]1001 + 4 = 1005
    
    回头看:
    第一扇门记做int[0]1001 + 0 = 1001
    

    发现规律:数组知道第一个位置地址后,后面的地址可以根据规律计算

    b.加深理解:

    int[0] = 100;
    int[2] = 200;
    
    //int 占4个字节
    

    假设数组中第一扇门的地址记做2001那么因为int占4字节,需要往下数3个位置 + 1001的位置储存100这个值
    那么:2001 、2002、003、2004这四个地址用来存储100
    在这里插入图片描述

    1. 这样计算储存地址的时候,很方便!!!
      计算公式:储存起始地址 = 原始地址 + 索引*字节
      
      假设存放的是:int类型,原始int[0]的地址 = 1001
      现在要存放100这个值,那么计算机就会计算得知:1001 + 0*4 = 1001;
      从1001位置开始(包含1001),4个位置,存的就是 100
      
    2. 不用在门上一个一个的标记

    数组内存分配之堆栈:https://blog.csdn.net/lcl19970203/article/details/54428358

    展开全文
  • java数组下标越界的问题

    万次阅读 2015-07-28 00:10:29
    java数组下标越界的问题: 最近一直出现这类问题:数组下标越界 举例说明: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at day07.PaiXu.get3max(RankDemo2.java:15) at day07....

    java数组下标越界的问题:

    最近一直出现这类问题:数组下标越界

    举例说明:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    	at day07.PaiXu.get3max(RankDemo2.java:15)
    	at day07.RankDemo2.main(RankDemo2.java:54)
    意思是错在第十五行
    
     出现此类问题的原因有多方面。总结一下我所理解的,数组的长度决定了它所能装载的数据的量。还
    有就是数组计数是从零开始的
    例如:当Srring arr[]==new String[6];如果要往里输入名字的话就只能输入六个。多了就是下标越界。
    另外数组一般都是与for循环结合起来用,所以用的的时候要注意一下它的循环条件。
    
    

    展开全文
  • java关于数组下标越界

    千次阅读 2019-05-04 20:11:40
    数组是用来存储数据的。数组是定长的连续的内存片段。因为数组的定长性,我们可以对数组...在eclipse中,可以用数组名.length得到数组的长度。需要注意的时,每一个数组,其第一个下标时从0开始的。 也就是0,1,2,...

     数组是用来存储数据的。数组是定长的连续的内存片段。因为数组的定长性,我们可以对数组进行多种操作。本篇记录的就是因为数组的定长性引起的下标越界问题。
     首先,我们定义一个数组。 int a =new int [5];这表示我们定义了一个Int 型,长度为5的数组。
    在eclipse中,可以用数组名.length得到数组的长度。需要注意的时,每一个数组,其第一个下标时从0开始的。
    也就是0,1,2,3,4。而不是1,2,3,4,5.对于我们初学者,大多数下标越界都发生在以1作为开头。
    举个例子,在eclipse中输入如下代码:

     public static void main(String[] args) {     
        int [] a= new int [5];
         a[0]=0;
         a[1]=1;
         a[2]=2;
         a[3]=3;
         a[4]=4;
         a[5]=5;
       System.out.println(a[5]);
    }
    


    此时运行代码,会报错。 java.lang.Array
     Index out of bounds exception.这是因为a[5]=5,
    我们定义的数组没有这一项。数组长度为5,是从小标0开始而不是1.改正只需要删除越界的代码即可。在今后我们初学者学习过程中,
    遇到数组问题,应该严格写上注释,知道自己在干什么。求数组的长度一定要用“数组名.length”来写。不要靠自己的计算。
    始终记住数组是定长的连续内存片段。下标从0开始到“数组名.length-1”结束。
    --------------------- 
    作者:tr0824 
    来源:CSDN 
    原文:https://blog.csdn.net/tr0824/article/details/79118195 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    
     

     

     

    展开全文
  • 如果不是那下标到底是什么呢? linkedlist是双向循环链表,有下标吗?如果没有为什么能用get set方法获取对应位置的
  • Java数组04:下标越界及小结 数组的四个基本特点 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。 其元素必须是相同类型,不允许出现混合类型 数组中的元素可以是任何数据类型,包括基本类型和...

    Java数组04:下标越界及小结

    数组的四个基本特点

    • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

    • 其元素必须是相同类型,不允许出现混合类型

    • 数组中的元素可以是任何数据类型,包括基本类型和引用类型

    • 数据变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量。

      数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

    数组边界

    • 下标的合法区间:[0,length-1],如果越界就会报错

    public static void main(String[] args) {

    ​ int[] a = new int[2];

    ​ System.out.println(a[2]);

    }

    • ArrayIndexOutOfBoundsException:数组下标越界异常
    • 小结:
      • 数组是相同数据类型(数据类型可以是任意类型)的有序集合
      • 数组也是对象。数组元素相当于对象的成员变量
      • 数组长度是确定的,不可变的。如果越界,则报:ArrayIndexOutOfBoundsException
    展开全文
  • 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的 数组边界 下标的合法区间:[0,length-1],如果越界就会报错; public static void main(String[] arg
  • Java数组下标

    2020-12-04 21:43:08
    题目: 实现: public class ArraySubscript { public static void main(String[] args) { int[] nums={2,7,11,15}; int target=26; for (int i = 0,j = 1; i <= nums.length-2;... if(target==nums[i]+nums[j])...
  • 一维数组 根据下标和循环进行赋值 public class Demo { public static void main(String[] args) { int[] num=new int[5];//提升性能 int length=num.length; for(int i=0;i<length;i++) { num[i]=i...
  • JAVA数组下标和(19.3.26)

    千次阅读 2019-03-26 21:21:29
    *** 给定一个整数数组 nums 和一个目标 target,请你在该数组中找出和为目标的那两个整数,并返回他们的数组下标。** 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 例如:...
  • 数组本身就是对象,java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的 数组的边界 下标的合法区间:[0,length-1] public static void main(String args[]){ i
  • Java语言,数组下标的范围是否可以从-1开始呢,我想修改范围
  • public class Test{ public static void main(String[]args){ ...doc显示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0 at Test.main(Test.java:3) 这是照着书上打的怎么还有错啊
  • 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其它对象类型,数组对象本身是在堆中的。 二、数组边界 下标的合法区间:[0 , length - 1],如果越界就会报错:public static void m
  • java数组_3 _下标越界与小结 数组边界 下标的合法区间:[0,length-1],如果越界就会报错。 public static void main(String[] args) { int[] b = new int[2]; System.out.println(b[2]); } //输出为 // ...
  • 数组与集合的应用之数组操作(数组下标界限)
  • 新手小白学JAVA 数组 数组工具类 二维数组

    万次阅读 多人点赞 2021-04-02 08:28:55
    数组下标是从0开始的,下标的最大是数组的长度减1 1.2 创建数组 数组的创建方式一般分为动态初始化和静态初始化 动态初始化 int[] a = new int[5]; 静态初始化 int[] b = new int[]{1,2,3,4,5}; int[] c = {1,2,3...
  • 定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组下标,否则返回-1 public class TestD { public static void main(String[] args) { int arr[] = {2,4,6,8,13,19,54,67}; //定义的...
  • java数组

    2019-04-28 11:20:15
    java数组数组是什么?声明数组变量(一维数组)创建数组数组查找下标(索引)长度循环取值数组小常识多维数组概念多维数组的动态初始化多维数组的引用 数组是什么? 用于存放某一类数据的容器,数组对于每一门编成语言...
  • Java数组 2021/4/5 周一 复习内容: 数组的声明和初始化、数组的长度、数组访问、java.lang.ArrayIndexOutOfBoundsException数组下标越界异常、二维数组、java.lang.NullPointerException空指针异常 如有错误,欢迎在...
  • 今天做报表统计遇到这样的问题: JSP页面中的checkbox在数据库中存放的是类似这样的"... * 根据一个数组中的向另个一个数组中取其对应的,具体如下 * strVal1、strVal2两个数组分别...
  • 数组排序,并返回排序后的数组对应原数组下标 用b数组来记录下标位置 #include<stdio.h> #include<iostream> #include<stdlib.h> using namespace std; void sort(int* a, int length, int* b) ...
  • 原因 :因为使用的索引没有在合理范围(0~数组的长度-1)之内 2.空指针异常:NullPointerException 原因 :只要调用属性和方法的那个为null就会发生空指针异常 */ public class ArrayExceptionTest { ...
  • C++/JAVA数组下标为什么从0开始

    千次阅读 2017-12-05 10:38:52
    在我们日常的学习过程中,我们了解到在C++/JAVA中,数组下标是从0开始的。对于新手来说,遍历的数组的时候还真是容易出错。但是为什么要这样规定,这样规定有什么好处? 其实根据我们前辈的思想,这样规定的主要...
  • 初识JAVA数组

    2020-09-04 05:47:28
    java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组
  • java 数组

    2020-02-15 20:40:33
    java 数组1. 数组的定义2.数组下标 1. 数组的定义 数据类型[ ] 数组名 = new 数据类型[容量]; 赋值左侧 数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类之后,整个数组 中保存...
  • 此类实现:输出一行数组数据,根据输入下标,以下标位置为结束,将原数组分割成两组子数组。并交换两个子数组的位置,保持子数组中的元素序号不变.如:原数组为7,9,8,5,3,2 以下标3为分割点,分割为子数组一:7,9,8,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,242
精华内容 76,896
关键字:

java数组输入下标得到数组值

java 订阅