小怡分享之Java数组的定义和使用

前言:

    🌈✨上次小怡给大家分享了Java方法的使用,今天小怡给大家分享Java数组的定义和使用。

1.数组的基本概念 

1.1  什么是数组 

     数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 

注:1.数组中存放的元素其类型相同。

       2.数组的空间是连在一起的。

1.2   数组的创建及初始化 

1.2.1   数组的创建 

       下面小怡给大家列出来几种写法:

           这是比较推荐的写法: 

T[]  数组名=new T[N] 

T:表示数组中存放元素的类型;

T[]:表示数组的类型;

N:表示数组的长度。 

1.2.2  数组的初始化 

       数组的初始化主要分为动态初始化静态初始化。 

1.动态初始化:在创建数组时,直接指定数组中元素的个数。 
int[] array=new int[10];
2.静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定。 

 语法格式:T[] 数组名称={data1,data2,data3,……data n};

注意事项:

  •  静态初始化虽然没有指定数组的长度,编译器在编译时会u根据{}中元素个数来确定数组的长度;
  • 静态初始化时,{}中数据类型必须和[]前数据类型一致;
  • 静态初始化可以简写,省去后面的new T[];
  • 静态初始化和动态初始化也可以分为两部,但是省略格式不可以;
  • 如果没有对数组进行初始化,数组中元素有其默认值;

      (1)如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,比如:

类型默认值
byte

0

short0
int

0

long0
float0.0f
double0.0
char/u0000
booleanfalse

(2)如果数组中存储元素类型为引用类型,默认值为null。 

1.3  数组的使用 

1.3.1  数组中元素访问 

        数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过下标访问其任意位置的元素。

注意事项:

1.数组时一段连续的内存空间,因此支持随机访问,即通过下标访问快速访问数组中任意位置的元素。

2.下标从0开始,介于[0,N)之间不包括N,N为元素个数,不能越界,否则会报出下标越界异常。

 

1.4.2  遍历数组 

      所谓“遍历”就是将数组中的所有元素都访问一遍,访问是指对数组中的元素进行某种操作,我们可以用在c语言中的方法:使用for循环,在这里,小怡给大家介绍另外三种方法:

1. 在数组中通过  数组对象.length  来获取数组的长度:
2.使用for-each遍历数组

      for(当前这个数字:数组的名字) 

          for-each是for循环的另一种使用方式,能够更方便的完成对数组的遍历,遍历array这个数组,取出每个元素放到x里面。

         缺点:无法获取到对应的下标。 

 3.使用toString方法:

     其实这里输出的就是一个字符串,使用Arrays的同String方法,把传入的参数array表示的数组,以字符串的形式输出。 

2.数组的应用场景

 2.1  保存数据

 

2.2  作为函数的参数 

       函数结束:意味着回收局部变量。 

1.参数传基本数据类型 

 

            发现在func方法中修改形参x的值,不影响实参的num值。

2.参数传数组类型(引用数据类型) 

 

              发现在func方法内部修改数组的内容,方法外部的数组内容也发生改变。因为数组时引用类型,按照引用类型来进行传递,是可以修改其中存放的内容的。

 

总结:

  • 一个引用不可能同时指向多个对象;
  • int[ ] array=null,代表这个引用不指向任何对象;
  • array1=array2,代表array1这个引用指向了array2这个引用指向的对象。 
  • 所谓的“引用”本质上只是存了一个地址。Java把数组设定成引用类型,这样后续进行数组参数传参,其实只是将数组的地址传入到函数形参中。这样可以避免对整个数组的拷贝(数组可能比较长,那么拷贝开销将会很大)。

 

2.3  作为函数的返回值 

比如:获取斐波那契数列的前N项

 

 

3.二维数组 

         二维数组本质上也就是一维数组,只不过每个元素又是一个一维数组。

基本语法 

  数据类型[][]  数组名称=new 数据类型[行数][列数]{初始化数据} 

代码示例:

         二维数组的用法和一维数组并没有什么明显区别,因此我们不再赘述。同理,还存在“三维数组”“四维数组”等更复杂的数组,只不过出现频率更低。

🌈✨今天的分享就到这里了,还有一些数组的练习,后面小怡再和大家一起分享,小怡和大家一起学习一起进步,“鼓起理想风帆前进。天天向上,展开梦想翅膀腾飞” 。

   

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值