数组

1.数组
存放一组相同数据类型的数
定义一个数组,在内存中申明一串连续的空间
2.描述数组的元素
1)数组名
2)数组类型
3)数组下标(下标从0开始)
4)数组元素
3.数组的长度一旦被定义,不能改变
4.使用数组四步走:
1)声明数组:
数据类型[] 数组名;
数据类型 数组名[];
2)分配数组空间
数组名 = new 数据类型[数组大小];
1)2)声明数组并分配空间
数据类型[] 数组名 = new 数据类型[数组大小];
数据类型 数组名[] = new 数据类型[数组大小];
3)给数组元素赋值
数组名[下标] = 数值;
4)使用
数据类型 变量= 数组名[0]+数组名[数组大小-1];

注意事项:
1)第一元素: 数组名[0]
2)最后一个元素:数组名[数组大小-1]
3)数组被分配空间之后,都会有个默认值(根据数据类型有不同的默认值)
 String    - null
 byte int   short  long  --0
 float double --0.0
 boolean - false
 char - ''

5.批量赋值:
1)声明并赋值
数据类型[] 数组名 = {值1,值2,值3…};
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3…};
2)循环赋值
循环体{
数组名[i] = 数值;
}
注意:创建数组并赋值,必须在同一条语句完成!

6.获取数组的长度
数组名.length

数组名[数组名.length] 会发生数组越界异常java.lang.ArrayIndexOutOfBoundsException

7.内存
寄存器:速度最快
1)存放临时参与计算的结果等
栈内存:速度紧次于寄存器,先进后出,后进先出
1)基本数据类型变量
2)数组名
3)引用数据类型的变量名
堆内存:速度慢,先进先出,后进后出
1)对象(具体的对象值)
2)数组(具体的数组元素)

8.GC - 垃圾回收器
栈内存和堆内存中变量失效的 ,垃圾回收器会自动回收

1.冒泡排序
口诀:
1)N个数字来排队
2)两两比较小靠前
3)外层循环N-1
4)内层循环N-i-1
(只要符合条件就两两交换–内层循环交换)
2.选择排序
选出相应的下标
(在外层进行交换)

3.Arrays 方法
1)Arrays.toString(数组名)
将数组转换为字符串
2)Arrays.sort(数组名);
升序排序
3)Arrays.equals(数组1,数组2);
比较两个数组是否相同
4)Arrays.copyOf(数组,长度)
将数据复制指定长度,到新的数组

5)Arrays.binarySearch(数组名,值)
	查询升序排序数组,指定值的下标
6)Arrays.fill(数组名,值)
	将数组每个元素全部赋值为指定的值

4.二维数组
int[] nums = new int[4];

一维数组起个别名:srr
srr[]  srrs = new srr[5];
	
	
语法:
数据类型[][]  数组名 = new 数据类型[n][m];
数据类型  数组名[][] = new 数据类型[n][m];

数组名.length  --  一维的长度(班级的数目)
数组名[i].length   -- 二维的长度 (每个班的人数)

m班n个学生成绩
数组名[m][n] --获取的具体的某个元素

5.二维数组注意事项
1)数据类型[][] 数组名 = new 数据类型[n][];
a.第二维数据为空
b.给第二维数组赋值
数组名[i] = new 数据类型[m];

2)二维数组声明并赋值
	数据类型[][] 数组名 = new 数据类型[][]{{值1,值N..},{值1,值N..}};
	数据类型[][] 数组名 = {{值1,值N..},{值1,值N..}};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值