精华内容
下载资源
问答
  • java怎么定义数组的长度?java中的数组长度问题
    千次阅读
    2021-03-05 22:55:56

    之前对Java中的数组一直是一知半解,特别是数组中的长度问题。今天对这个问题也算是小有理解,算是对java数组的有了更进一步的了解吧。不说了,先来例子再说:package com.test;

    public class Test {

    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    final   int   TABLE_SIZE   =   5;

    final   int   TABLE_SIZE1   =   6;

    final   int   TABLE_SIZE2   =   7;

    int[][][]   table1   =   new   int[TABLE_SIZE][TABLE_SIZE1][TABLE_SIZE2];

    int[][]   table2   =   new   int[TABLE_SIZE][TABLE_SIZE1];

    int[]   table3   =   new   int[TABLE_SIZE];

    int   a   =table1[4][0].length;

    int   b   =table2[2].length;

    int   c   =table3.length;

    System.out.println(a);

    System.out.println(b);

    System.out.println(c);

    }

    }

    这个例子的输出结果是什么呢?

    相信大家对一维数组没有什么问题,那我们就来看看二维数组数组到底是怎么回事吧。

    Java中多维数组被看作数组的数组。初看这句话,确实有点不是很好理解(特别对于我这样的菜鸟级别的啊)。用例子说话吧。就上例:

    int b =table2[2].length;

    就这个b它结果输出的TABLE_SIZE1的值。我们知道table2是一个二维数组,而length方法取出的结果是数组中的长度而且一次取出数组中的长度,即:如果是一位数组的话,直接取出的话就是一位数组的长度,如:int c =table3.length;  此时c的结果就是一位数组table3的长度即TABLE_SIZE;如果 int b =table2[2].length;换成 int b =table2.length;  此时b输出的结果是二维数组中的第一维数组的长度即TABLE_SIZE(即跟c相等) ,而如果是int b =table2[2].length,注意此时length的长度是二维数组table2的第二维数组的长度即TABLE_SIZE1 ,而且只要table2[2].这个中括号中的值x是在 0到其第一维数组的长度减1即(TABLE_SIZE-1),其table2[x].length的长度都是第二维数组的长度,以此类推,例子中a的值就是TABLE_SIZE2。

    所以例子中的结果应该是:

    7

    6

    5

    更多相关内容
  • java定义数组的实现方法(与VB的ReDim相像),需要的朋友可以参考一下
  • Java中数组定义有三种方式,其基本语法格式如下:数组类型[] 数组名 = new 数组类型[数组长度]; 数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素...

    在Java中,数组的定义有三种方式,其基本语法格式如下:

    数组类型[] 数组名 = new 数组类型[数组长度];   
    数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,...};  
    数组类型[] 数组名 = {数组元素0,数组元素1,...};
    

    在上述三种定义数组的语法格式中,数组类型可以是前面小节中介绍的变量的数据类型,数组名就是定义的变量名。

    要符合标识符的规范,数组长度表示该数组中可容纳的数组元素的个数,而数组元素0、数组元素1就表示定义的数组中具体包含的数据。

    以上三种定义数组语法格式的实际使用示例如下:

    int[] ids = new int[100];   
    String[] names = new String[]{"张三","tom",...};  
    Object[] object = {"张三","tom",...};
    

    第一种方式定义了一个int[]数组类型的变量ids,使用new int[100]指定了该数组的长度(也就是元素的个数)为100,但并没有为数组中的元素赋值;

    第二种和第三种方式分别定义了一个String[]类型和Object[]类型的数组变量names和object,并都通过“=”右边的大括号“{}”为数组完成了初始化赋值。

    关于数组在内存中的存储方式,这里以上述定义数组的第一种方式为例,来进行具体说明。第一种数组定义的方式,相当于在内存中定义了100个int类型的变量,第一个变量的名称为ids[0],第二个变量的名称为ids[1]。

    以此类推,第100个变量的名称为ids[99],这些变量的初始值都是0。为了更好地理解数组的这种定义方式,可以将上面的一句代码分成两句来写。

    具体如下:

    int[] ids;      // 声明一个int[]类型的变量
    ids = new int[100]; // 创建一个长度为100的数组,并将数组地址赋值给数组类型的变量x
    

    接下来通过两张内存图来详细地说明数组在创建过程中内存的分配情况。

    第一行代码 int[] ids; 声明了一个变量ids,该变量的类型为int[],即一个int类型的数组。变量ids会占用一块内存单元,它没有被分配初始值。此时ids在内存中的状态如图1所示。

    第二行代码 ids = new int[100]; 创建了一个数组,并将数组的内存地址赋值给变量ids。在程序运行期间可以使用变量ids来引用数组,这时内存中的状态会发生变化,如图2所示。

    图2描述了变量ids引用数组的情况。该数组中有100个元素,初始值都为0。数组中的每个元素都有一个索引(也可称为角标),要想访问数组中的元素可以通过“数组名[角标]”的形式,即“ids[0]、…、ids[99]”。

    需要注意的是,数组中最小的索引是0,最大的索引是“数组的长度-1”。在Java中,为了方便获得数组的长度,提供了一个length属性,在程序中可以通过“数组名.length”的方式来获得数组的长度,即数组元素的个数。

    接下来通过一个完整的案例来演示如何定义数组以及访问数组中的元素,如文件1所示。

    文件1 Example18.java

         public class Example18 {
             public static void main(String[] args) {
                 // 1、第一种方式定义数组
                 int[] ids = new int[100];    
                 System.out.println("ids[0]="+ids[0]);   //访问数组第一个元素
                 System.out.println("ids[99]="+ids[99]);//访问数组最后一个元素
                 System.out.println("==============");
                 // 2、第二种方式定义数组
                 String[] names = new String[]{"张三","tom","jack"};  
                 System.out.println("names[0]="+names[0]);     //访问数组第一个元素
                 System.out.println("names[2]="+names[2]);     //访问数组最后一个元素
                 System.out.println("==============");
                 // 3、第三种方式定义数组
                 Object[] object = {"张三","tom","jack"};  
                 System.out.println("数组的长度为:"+object.length);//获取数组的长度
                 System.out.println("object[0]="+object[0]);  //访问数组第一个元素
                 System.out.println("object[2]="+object[2]);  //访问数组最后一个元素
             }
         }
    

    运行结果如图3所示:

    文件1中,分别声明了一个int[]类型、String[]类型和Object[]类型的数组,然后通过“数组名[角标]”的形式获取了数组的第一个和最后一个元素值,并打印到控制台上。从打印结果可以看出,第一种定义数组方式定义的int[]类型的数组中元素的初始值都为0。

    这是因为当数组被成功创建后,数组中元素会被自动赋予一个默认值,根据元素类型的不同,默认初始化的值也是不一样的;而第二种和第三种定义数组方式定义的数组都指定了初始值,所以打印出对应角标的元素值。

    Java中不同数据类型元素的初始值如下表所示:

    在使用数组时,如果不想使用这些默认初始值,可以显式地为这些元素赋值,当然也可以对定义数组时的指定初始值进行修改。接下来对上面的案例进行修改来学习一下如何为数组中的元素赋值和修改,如文件2所示。

    文件2 Example19.java

         public class Example19 {
             public static void main(String[] args) {
                 // 1、第一种方式定义数组
                 int[] ids = new int[100];    
                 System.out.println("ids[0]="+ids[0]);  //访问数组第一个元素
                 // 为数组指定元素进行初始化赋值
                 ids[0] = 2500;
                 System.out.println("ids[0]="+ids[0]); //再次访问数组第一个元素
                 System.out.println("==============");
                 // 2、第二种方式定义数组
                 String[] names = new String[]{"张三","tom","jack"};  
                 System.out.println("names[0]="+names[0]);   //访问数组第一个元素
                 // 为数组定义时指定的初始值进行修改
                 names[0] = "李四";
                 System.out.println("names[0]="+names[0]);   //再次访问数组第一个元素
                 System.out.println("==============");
                 // 3、第三种方式定义数组
                 Object[] object = {"张三","tom","jack"};  
                 System.out.println("object[0]="+object[0]); //访问数组第一个元素
                 // 为数组定义时指定的初始值进行修改
                 object[0] = "李四";
                 System.out.println("object[0]="+object[0]); //再次访问数组第一个元素
             }
         }
    

    运行结果如图4所示:

    文件2中,三种定义数组的方式都使用了“数组名[角标]=元素值”的形式对各数组中指定角标的元素进行了赋值和修改。

    从修改的代码以及程序运行结果可以看出,对数组中的元素进行赋值或修改操作所使用的方式一样,只是在使用“数组名[角标]=元素值”的形式对数组元素进行操作时,如果数组指定角标的元素只有默认初始值,那么就是对元素进行的赋值操作;如果数组指定角标的元素已经有了初始值,那么就是对元素进行的修改操作。

    注意:

    1.每个数组的索引都有一个范围,即0~length-1。在访问数组的元素时,索引不能超出这个范围,否则程序会报错,如文件3所示。

    文件3 Example20.java

         public class Example20 {
             public static void main(String[] args) {
                 int[] arr = new int[4];                     // 定义一个长度为4的数组
                 System.out.println("arr[4]=" + arr[4]); // 通过角标4访问数组元素
             }
         }
    

    运行结果如图3所示:

    从图5可以看出,程序运行后提示了“ArrayIndexOutOfBoundsException”即数组角标越界异常的错误。

    出现这个异常的原因是数组的长度为4,其索引范围为0~3,文件中的第4行代码使用索引4来访问元素时超出了数组的索引范围。所谓异常指程序中出现的错误,它会报告出错的异常类型、出错的行号以及出错的原因。

    2.在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常,接下来通过一个案例来演示这种异常,如文件4所示。

    文件4 Example21.java

    public class Example21 {
    public static void main(String[] args) {
    int[] arr = new int[3]; // 定义一个长度为3的数组
                 arr[0] = 5;                  // 为数组的第一个元素赋值
                 System.out.println("arr[0]=" + arr[0]);    // 访问数组的元素
                 arr = null;                 // 将变量arr置为null
                 System.out.println("arr[0]=" + arr[0]);     // 再次访问数组的元素
             }
         }
    

    运行结果如图6所示:

    从图6可以看出,文件4中的第4、5行代码都能通过变量arr正常地操作数组,而在第6行代码将变量置为null后,在第7行代码再次访问数组时就出现了“java.lang.NullPointerException”的异常信息,即空指针异常。

    点赞 · 分享 · 转发

    帮助更多需要的人看到

    · 推荐阅读 ·

    这个「垃圾」问题也能冲上热搜?引得Java大牛在线怒怼...

    2021-04-22

    编程过来人的5点建议,听进去的人离「高薪」更近!

    2021-04-21

    不懂点「黑话」,别说你是混 IT 圈的!

    2021-04-20

    全球最厉害的14位程序员,说没听过简直离谱!

    2021-04-19

    腾讯35岁程序员被裁:存款700万+两套房,无病呻吟带着炫耀?

    2021-04-17

    点个在看,播妞爱你们呦

    展开全文
  • java定义数组方法有哪些

    千次阅读 2021-02-12 08:58:49
    java定义数组方法有:1、【数组类型[] 数组名 = new 数组类型[数组长度]】;2、【数组类型[] 数组名 = {数组元素}】;3、【数组类型[] 数组名 = new 数组类型[] {数组元素}】。本文操作环境:windows10系统、java8...

    java定义数组的方法有:1、【数组类型[] 数组名 = new 数组类型[数组长度]】;2、【数组类型[] 数组名 = {数组元素}】;3、【数组类型[] 数组名 = new 数组类型[] {数组元素}】。

    f9727375ddef0f25953b68b6768bfc78.png

    本文操作环境:windows10系统、java8版本、thinkpad t480电脑。

    (学习视频分享:java教学视频)

    详细介绍:

    定义数组的三种方法:

    1、数组类型[] 数组名=new 数组类型[数组长度];

    2、数组类型[] 数组名={数组0,数组1,数组2,数组3,。。。。};

    3、数组类型[] 数组名=new 数组类型[]{数组0,数组1,数组2,......};

    举例如下:public class WhatEver {

    public static void main(String[] args) {

    //第一种 例:

    String[] test1 = new String[6];

    test1[0] = “数组0”;

    test1[1] = “数组1”;

    //第二种 例:

    String[] test2 = {“数组0”,“数组1”,“数组2”,“。。。。”};

    //第三种 例:

    String[] test3 = new String[]{“数组0”,“数组1”,“数组2”,“。。。。”};

    }

    }

    展开全文
  • 主要介绍了Java二维数组简单定义与使用方法,结合实例形式简单分析了java二维数组定义、使用方法及相关注意事项,需要的朋友可以参考下
  • 这时就只能改变数组里的数值而不能改变它的长度了.Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言...

    定义时当然可以:例如 int[] a;

    但是要把它初始化成为一个真正意义上的数组就必须设定长度: int [] a = new int[10]; 这时就只能改变数组里的数值而不能改变它的长度了.

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

    26290cf1a6803bde15afa6ff851c3072.png

    扩展资料:

    1.简单性。

    Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。

    因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

    2.面向对象。

    Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。

    数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。

    Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。

    3.分布性。

    Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。

    网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。

    展开全文
  • Java中数组定义的三种方式

    千次阅读 2021-04-15 14:13:19
    方法一:1.先声明 2.分配空间 3.赋值public class arr{public static void main(String[] args){int[] arr; //先声明arr=new int[5]; //分配空间for(int i=0;i<5;i++)arr[i]=i*10; //赋值for(int i=0;i<5;i+...
  • 使用Java定义数组

    千次阅读 多人点赞 2021-12-03 16:34:07
    一维数组和二维数组定义及使用
  • 主要给大家介绍了关于Java中数组转List的三种方法与对比分析的相关资料,分别介绍了最常见方式、数组转为List后,支持增删改查的方式以及通过集合工具类Collections.addAll()方法,需要的朋友可以参考下
  • Java中数组定义与使用

    千次阅读 2021-09-26 14:46:21
    Java 中定义数组的语法有两种:    type arrayName[];    type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明...
  • java中打印数组方法An array is a data structure used to store data of the same type. Arrays store their elements in contiguous memory locations. 数组是用于存储相同类型数据的数据结构。 数组将其元素...
  • 主要介绍了Java中对象数组的使用方法,结合实例形式分析了java对象数组的功能、定义、初始化与相关使用技巧,需要的朋友可以参考下
  • Java中数组定义与使用(一)

    万次阅读 多人点赞 2018-09-01 00:05:13
    如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这儿时候如果按照此类方式定义就会非常麻烦,...
  • java中如何定义一个数组

    万次阅读 2018-12-20 11:34:02
    数组定义方法 int[] a; //定义一个数组a int[] b=new int[10]; //定义一个长度为10的数组b int[] c={7,1,2,3,8}; //定义一个数组c,并赋值,其中a[0]=7,a[4]=8; //以数组b为例,长度为10,分别是从b[0]-...
  • // 这时候就需要重新将原数组的元素拿出来重新定义数组,将旧元素和新元素重新赋值给新的数组 // 然后再把旧数组指向新数组即可,这样就解决了新元素插入数组的问题 int[] arr3 = new int[] { 20, 30, 40 }; //...
  • Java中如何定义数组

    千次阅读 2018-09-02 10:45:55
    定义数组变量 类型 [ ] 数组名字 = new 类型 [数组元素个数]; 例如: int [ ]a=new int [100];//定义一个叫a的数组,存放100个int型的数据 注: 元素的个数必须是整数,元素的个数必须是确定的数,元素的个数...
  • 今天小编就为大家分享一篇java 将一个数组逆序输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Java数组的三种定义方法

    千次阅读 2019-04-30 23:43:59
    Java数组的三种定义方法1.第一种适合不用初始化的数组数组特别长的时候,不初始化,值都是默认值。2.第二种定义适合直接初始化数组3.第三种匿名数组适合直接给方法传入参数时使用 1.第一种适合不用初始化的数组。...
  • 一、二维数组以及多维数组1、二维数组的定义:​在一维数组中定义每一个元素也是一个数组元素,这样的数组称为”二维数组“​多维数组就是在一维数组上再次定义二维数组或三位数组等。​一维数组定义int [] array={1...
  • JAVA数组定义

    千次阅读 2021-02-12 13:15:23
    JAVA一维数组一,注意不可添加数组元素不可改变数组长度一个数组中的说有元素必须数据类型相同二,创建方法三种1直接添加元素类型[] 数组名 = {元素,元素,元素,……};int[] arr={1,2,3,4};2先定义数组长度再添加...
  • java中数组定义和使用(笔记)

    千次阅读 多人点赞 2021-04-22 16:12:39
    1、创建数组时直接定义并赋值 且给数组定义好长度。 例如: int [] a={12,23,45,56}; 2、创建数组定义指出数组的长度,并且为数组创建内存空间。 例如: int [] a1=new int[5]; 3、创建数组时对数组进行定义、...
  • java创建数组时定义数组的长度

    千次阅读 2019-11-21 15:59:22
    直接看案例: Double[] d = new Double[6]; 这里定义了一个double类型的数组,定义数组的长度为6
  • 许多初学者不知道如何定义java中数组,下面我就为大家带来一篇java中数组定义及使用方法。应该可以解决大部分人的需求,现在就分享给大家,也给大家做个参考。 数组:是一组相关变量的集合 数组是一组相关数据的...
  • JAVA方法数组

    千次阅读 2021-03-04 04:05:05
    一、JAVA方法:1、定义:a、java方法是语句的集合,它们在一起执行一个功能。b、方法是解决一类问题的步骤的有序组合。c、方法包含于类或对象。d、方法在程序被创建,在其他地方被引用。2、设计方法的原则:一...
  • Java数组定义常用方法

    千次阅读 2021-03-07 02:41:41
    Java数组定义常用方法Java中数组、是一种简单的线性数据存储结构、他用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。Java中数组有什么类型?我们要怎么定义这些数组呢?下面跟yjbys小编一起来...
  • java怎么定义类的数组

    千次阅读 2021-03-08 03:03:21
    importjava.util.Scanner;classEmployee{privateStringEnum;privateStringEname;privateStringEsex;privateStringEapartment;Scannerinput=newScanner(System.in);voidin...package 员工;import java.util.S...
  • JAVA中数组的正确定义方法是什么?

    千次阅读 2021-03-06 18:37:34
    数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。§5.1一维数组一、一维数组的定义type arrayName[];其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,...
  • Java实验-数组定义、初始化方法 掌握数组的遍历方法 掌握Arryas类的使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 767,385
精华内容 306,954
关键字:

java中定义数组的方法

java 订阅