Java笔记名晨总结05- 数组

数组
什么是数组?
数组是用来干嘛的?
假如我们要做一个成绩管理系统,一个班级里面有50个人。
假如我们做的是一个公司的财务管理软件,需要记录每个人的工资,公司有30到1000 个员工。
使用数组可以搞定上面的:
数组可以存储多个类型一致的元素。(任意类型)
引用类型和基本类型变量创建的不同
基本类型变量声明出来不管是否赋值,都已经分配了内存。
引用类型变量的创建分为两步:声明和初始化
声明只在栈内分配内存(存储引用,或者说存储内存地址)
初始化在堆或者方法区分配内存(存储实际的数据)
new出来的东西放在堆里面
程序运行常量放在方法区里面
关于栈
所有局部变量都存放在栈里面。
什么是局部变量?
在方法里面创建的变量都是局部变量,因为只在这个方法内有效。

一维数组的声明、初始化和使用
第一步:声明
声明第一种方式:数组元素类型[] 数组名;
声明第二种方式:数组元素类型 数组名[];
注意:没有初始化的数组是无法使用的。(可以初始化为null)
第二步:初始化
初始化的时间:
可以在声明的时候直接初始化
也可以先声明后初始化
初始化的方式:(初始化的时候必须确定数组的长度)
第一种方式:int[] shuzu = new int[3];//按照默认值初始化 0
第二种方式:int[] shuzu = new int[]{3,32,34};//长度根据元素个数确定
第三种方式:int[] shuzu = {23,234,23,4}//上面的简化版本,根据元素个数确 定数组长度
数据类型的默认值
基本类型是0(0 0.0 0所代表的字符 false )
引用类型是null

第三步:使用
使用:
通过索引访问数组里面元素,索引是从0开始。
访问方式:数组名[索引] //可以访问值,也可以设置值
获取数组长度
数组名.length 这里的length是属性,不是方法,不需要加括号
注意事项
数组之间的赋值
引用类型的赋值
下标超出范围 //严重
空引用int[] shuzu = null;
shuzu[index] //严重
数组的其他操作:
填充数组
Arrays.fill(数组名,值);//使用指定的值填充指定的数组
编程练习
一、遍历一个数组中所有的元素,并输出出来
二、请将’A’,’B’,’C’存入数组,然后再输出
三、复制数组,将数组里面的数据全部复制到另一个数组里面
四、取得一个数组里面的最大值和最小值
五、把数组里面的元素倒置( {234,3,34,25,3} => {3,25,34,3,234} )
for循环的特殊用法
六、现在有如下一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
七、数据查找,有一个数组,里面存储是是整数,从这个里面查找一个指定整数,找到 这个整数所在位置(索引位置)。(查找第一个出现的位置)

二维数组的声明、初始化和使用
为什么用二维数组?
假如我们要做一个成绩管理系统,一个班级里面有50个人。
假如我们做的是一个公司的财务管理软件,需要记录每个人的工资,公司有40个员工。
对上面的问题进行升级
假如我们要做一个成绩管理系统,我们有10个班级,一个班级里面有50个人。
假如我们做的是一个公司的财务管理软件,需要记录每个人的工资,公司有6个部门, 每个部门有40个员工。

1、声明
声明第一种方式:数据类型[][] 数组名;
声明第二种方式:数据类型 数组名[][];
2、初始化
初始化第一种方式:数组名=new 数据类型[m][n];
初始化第二种方式:数组名= { {2,5},{1},{3,2,4},{1,7,5,9}};
可以把二维数组当成多个一维数组组成的一维数组,比如这里的就是一个长度 为m 的一维数组,这个数组里面每一个元素都是长度为n的一维数组。(画图 表示二维数组在内存中怎么存储的)

初始化第三种方式:数组名= new 数据类型[m][];
m表示里面有多少个一维数组,但是没有给出这个一维数组的长度。这里的每 个一维数组的长度是可以不一样的。

int[][] school= new int[3][];
school[0]=new int[2]; //或者= {xx,x,x,xxx,xx};
school[1]=new int[3]; //或者= {xx,x,x,xxx,xx};
school[2]=new int[1];


3、使用
格式:数组名[索引][索引]
通过数组名[索引] 得到的是一维数组,完全可以当做一维数做来使用
二维数组的编程练习
一、遍历二维数组里面的所有元素,并输出出来。
(遍历一个规则的,里面所有一维数组的长度是一样的,遍历一个不规则的,里面		一维数组的长度是不一样的)
	
数组排序
冒泡排序
直接选择排序


你可能感兴趣的:(Java基础知识~,java)