Java数组

1、概念

当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元。

数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语言中体现为一种引用数据类型。

2、声明方式

数据类型[] 数组名称=new 数据类型[数组长度]

调用数组的length属性可以获取数组的长度

可以通过下标的方式访问数组中的每一个元素。需要注意的是:数组的下标从0开始,对于长度为n的数组,下标范围是0~n-1。

语法格式:

int[] arr =new int[];

相关概念:

数组名:用于记录一维数组在内存空间中的地址信息,便于下次访问。

数组元素:主要指存放在数组中的数据内容。

数组长度:主要指数组中最多可以存放的元素个数,通常使用数组名.length获取

数组下标:主要指数组元素在数组中的编号,从0开始可以取到长度-1

int arr1[] = new int[];

int[] arr =new int[];    动态方式

两种方式从结果上来说是一样的,但是第一种不推荐使用;第二种方式更推荐,它更容易与变量的声明区分,提高了代码的可读性。

3、一维数组的初始化

基本类型的数组创建后,其元素的初始值:byte、short、int 、long为0;float double为0.0;boolean为false

在数组声明的同时进行初始化:

数据类型[] 数组名称={初始值1,初始值2......};

静态方式

特殊写法:静态方式

boolean[] arr=new boolean[]{true,true,false,false};

4、内存结构之栈区

栈用于存放程序运行过程当中所有的局部变量。一个运行的Java程序从开始到结束会有多次变量的声明。

JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的数组和对象。

5、数组的优缺点

(1)优点

可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快。

(2)缺点

①数组要求所有元素类型相同。

②数组要求内存空间必须连续,并且长度一但确定就不能修改

③增加和删除时可能移动大量元素,效率低。

6、System.arraycopy(Object src ,int src, Object dest,int destPos,int length)

将指定数组中的数组从指定位置开始复制到目标数组的指定位置

Object src:数据从哪儿来

int src:数据开始的的位置

Object dest:数据到哪儿去

nt destPos:数据目标地址的起始下标

int length:元素个数

7、数组2=数组1;

数组1的内存空间中存放的是数据在堆区中的内存地址信息,赋值后让数组2变量中存放了数组1所指向堆区的内存地址。也就是让数组2和数组1指向了同一块堆区空间,本质上是改变指向而已。

8、java.util.Arrays类可以实现对数组中元素的遍历、查找、排序等操作。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2_Li4u,size_20,color_FFFFFF,t_70,g_se,x_16

 Arrays.fill(数组名,值);

Arrays.equals(数组名1,数组名2);

Arrays.sort(数组名1);

Arrays.binarySearch(数组名,查找的数值);

9、二维数组的概念

二维数组本质上就是由多个一位数组摞在一起组成的数组,二维数组中的每个元素都是一维数组,而一维数组中的每个元素才是数据内容。

10、二维数组的声明方式

int[][] arr = new int[行数][列数];

arr.length代表二维数组arr的长度,也就是元素的个数,也就是一维数组的个数,也就是行数。

arr[0].length代表二维数组中第一个元素的长度,也就是一维数组的长度,也就是第一行的列数。

11、二维数组的初始值

int[][] arr = {{11,22,33,44},{55,66,77,88}};

int[][] arr = new int[3][];

arr[0] = new int[3];

arr[1] = new int[4];

arr[0] = new int[5];

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值