Java基础---Java中的数组

本文详细介绍了数组在Java中的基本概念,包括数组的定义、静态和动态初始化、访问方式、遍历方法以及一维、二维和多维数组的区别。还探讨了数组操作中可能出现的空指针异常问题。
摘要由CSDN通过智能技术生成

1.数组是什么

数组就是一个容器,用来存一批同种类型的数据。

例如:

//整数类型的数据 20,33,56,90
int[] arr = {20, 33, 56, 90};

//字符串类型的数据 张三,李四,王麻子
string[] name = {"张三","李四","王麻子"};

2.数组的定义和访问

静态初始化数组

  • 定义数组的时候直接给数组赋值。
  • 语法格式:
    • 完整格式:数据类型[ ]  数组名 = new 数据类型[ ]{元素1,元素2 ,元素3… };
    •  简化格式:数据类型[] 数组名 = { 元素1,元素2 ,元素3,… };  (常用)

例如:

//整数类型的数据 20,33,56,90
int[] arr = {20, 33, 56, 90};

//字符串类型的数据 张三,李四,王麻子
string[] name = {"张三","李四","王麻子"};

 注意:

  • “数据类型[] 数组名”也可写成 “数据类型 数组名[] ”。(单不推荐)
  •  什么类型的数组只能存放什么类型的数据。
  • 数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。

动态初始化数组

  • 定义数组时先不存入具体的元素值,只确定数组存储的数据类型数组的长度
  • 语法格式:数据类型[]  数组名 = new 数据类型[长度];

例如:

int[] arr = new int[4];
// int类型的系统默认值为0,所以arr = {0, 0, 0, 0}

// 后赋值
arr[0] = 10;
System.out.println(arr[0]); // 10

注意:静态初始化和动态初始化数组的写法是独立的,不可以混用。 

数组的访问

数组访问语法格式:数组名[索引]

//例如;
System.out.println(arr[0]); 

数组的长度属性:length

数组长度访问语法格式:数组名.length

// 获取数组的长度(就是数组元素的个数)
System.out.println(arr.length);            

数组的最大索引访问语法格式:数组名. length – 1          (前提:元素个数大于0)

注意:数组的索引是从0开始的

3.数组的遍历

数组遍历方法

数组遍历:就是一个一个数据的访问。

快速搭建好遍历数组的方法:数组名.fori+回车

//1.当遍历过程中需要使用到数组的索引/下标时,使用普通for循环
        for(int i = 0;i < 数组名称.length;i++){
                //获取数组中的元素
                sout(数组名称[i]);
       }

//2.当数组的遍历过程中,如果不需要使用到数组的索引,使用增强for(foreach)循环
  for(最终结果的数据类型  变量名称:要遍历的数组名){
            sout(变量名称);
        }

注意:使用增强for循环的时候无法对数组的原始数据进行修改。为什么?
每次循环的时候都会数组中的值赋值给了一个变量,修改行为都是对变量的修改。
对数组的原始数据没有影响。

调用Arrays.toString()方法遍历数组

 Arrays.toString(数组名)方法:可以直接遍历数组中的内容

例如:

为什么要遍历数组?

方便求和、元素搜索、找最大值

4.数组的种类

一维数组

定义:数组中的元素是一个具体的值。

创建语法:数据类型[] 数组名称 = new 数据类型[元素个数]

二维数组

定义:数组中的元素是一个一维数组。

创建语法:

数据类型[][] 数组名称 = new 数据类型[可以有多少个一维数组(行)][每个一维数组中可以有多少元素(列)];

例如:数据类型[][] 数组名称 = {{值1,值2,值3},{值1,值2,值3},{值1,值2,值3}}

多维数组

定义:数组中的元素是一个二维数组。

创建语法:

数据类型[][][] 数组名称 = new 数据类型[可以有多少个二维数组][每一个二维数组中可以有多少个一维数组][每一个一维数组中可以有多少元素];

例如:数据类型[][][] 数组名称 = {{{值1,值2,值3},{值1,值2,值3},{值1,值2,值3}},{{值1,值2,值3},{值1,值2,值3},{值1,值2,值3}}}

5.使用数组时常见的一个问题

  • 如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象
  • 引用数据类型的默认值null  
  • 定义在方法中的变量作用范围仅在该方法中有效,被称为局部变量              

                局部变量要使用,必须赋值  

  • 直接定义在类中的变量叫做成员变量    

                成员变量:系统会自动给一个默认值    

                局部变量:系统不会给默认值,如果要使用,必须自己给值

  • null:在内存中没有开辟对应的存储空间
    •  在使用引用数据类型去做某些事的时候,如果出现了空指针异常,则一定是没有在内存中开辟空间(没有new)        
    •  //NullPointerException:空指针异常:变量只起了一个名字,在内存中没有开空间(只出现在引用数据类型中)
  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值