5.数组

一、初步认识数组
1.理解数组
数组是用来存储相兼容数据类型的定长的容器
特点:


a.只能存放相兼容数据类型,不能存放多种数据类型
b.可以存放基本数据类型和引用数据类型
c.数组是定长的,一旦被初始化,数组的长度就不能发生改变
d.将数组中存储的数据称为元素
2.使用数组的好处:
可以自动给数组中的数据从0开始编号,方便操作这些数据,我们把这些编号叫做下标(索引)




3.定义数组
数组是一种引用数据类型
int x = 4;
int 是一种基本数据类型,int[]是一种引用数据类型,用来表示数组

int[] y = xxx;




方式一:数据类型[] 数组名称,例如:int[] x,String[] s
方式二:数据类型 数组名称[]
推荐使用方式一



二、数组的初始化

Java中的数组必须先初始化,然后才可以使用,所谓初始化,就是为数组中的每个数组元素开辟内存空间,并且为每个元素赋初始值


1.静态初始化
初始化的时候由程序员指定每个数组元素的初始值,交给系统去计算数组的长度(大小)
语法:元素类型[] 数组名称 = new  元素类型[]{元素0,元素1,元素2.。。。。。};


2.动态初始化
初始化是程序员只需要指定数组的大小(长度),对应的初始值由系统自行进行分配
语法:元素类型[] 数组名称 = new 元素类型[数组的长度];


系统对初始值的分配规则:
a.整型:0
b.浮点型:0.0
c.boolean:false
d.字符型:‘\u0000’(在不同的系统平台上的展示结果是不一样的,有的是方框(口),有的是空格)
e.引用数据类型:null




注意:在初始化数组时,静态初始化和动态初始化一定不要同时使用(在指定数组长度的同时,不要给数组中每个元素赋初始值)


数组初始化完成之后,就可以使用数组了,包括数组元素的访问,给数组元素赋值,获取数组的长度等




三、数组的使用
见代码




四、内存中的数组


数组是一种引用数据类型,数组元素和引用变量在内存中时分开存放的
数组引用变量存放在栈空间中,数组元素存放在堆空间中




扩展:
1>基本数据类型和引用数据类型在内存中的区别?
基本数据类型
int x = 4;
int y = x;
y = 20;
x = ?






引用数据类型
int[] a = {22,33};
int[] b = a;
b[0] = 18;
a[0] = ?


2>内存的分类:
a.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制
b.栈:存放基本数据类型的变量和引用数据类型的引用
特点:被执行完成之后,函数或者变量所占用的空间会被销毁
c.堆:存放new出来的对象,例如:new出来的实际的数组元素
d.静态域:存放静态成员(static)
e.常量池:基本类型常量和字符串常量




举例:内存结构------》一套房子
     卧室----睡觉
    厨房----做饭
   客厅----招待客人





五、数组的应用


1.排序


1>冒泡排序
思路:比较相邻两个下标对应的元素值,如果符合条件就交换位置(最值出现在最右边)



2>选择排序
思路:固定一个下标,然后使用这个下标对应的值依次和他后面的值进行比较






2.查找
1>顺序查找
思路:遍历数组,依次把每一位元素和要比较的数值进行比较


2>二分法查找
思路:前提是一个数组是有序,通过折半来缩小查找范围,提高效率
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值