java数组第五节

数组
1、数组是什么?为什么使用数组?
比如我要统计每位员工的工资,我得定义多个变量去分开存储,因为一个变量只能存储一个数据,如果过多员工,太麻烦。引入数组→
数组就是一个容器,可以存放多个数据
2、什么是数组?
数组和变量差不多,都是存放数据的,但是变量只能存放一个数据,而数组可以存放多个数据,前提是这多条数据是同一类型
*数组是引用数据类型。
3、如何定义数组
数组类型 [ ] 数组名;
如果定义好数组,必须要给数组进行初始化。

数组的初始化
(1)动态初始化:指定数组的长度,一旦长度指定,数组中只能存放指定长度的数据,不可改变。
两种格式:
1、
数组类型 [ ] 数组名 = new 数组类型 [数组长度];
2、
数组类型 [ ] 数组名;
数组名 = new 数组长度 [数组长度];
(2) 静态初始化:不是指定数组的长度,而是直接在初始化数组的同时给数组赋值。
1、数组类型 [ ] 数组名 = new 数组类型[ ]{数据一,数据二…};
数据之间用英文逗号隔开
2、数组类型[ ] 数组名;
数组名 = new 数组类型[ ]{数据一,数据二…};
最简单的方式:
数组类型[ ] 数组名 = {数据一,数据二…};
定义好了数组,使用下标给数组赋值,数组下标从0开始。
获取数组的长度 数组名.length

数组中常见的异常:
数组越界异常 ArrayIndexOutOfBoundsException
数组长度为5 却输入了6个数据 // 错误
空指针异常 NullPointerException

foreach(for循环的增强版)
for(定义变量接收数组的每一个元素:要遍历的数组名)

int[] array = new int[]{1,2,3,4,5};
for(int a:array){
    System.out.println(a);
}

数组遍历只有两种
for循环。
foreach。

Arrays:可以把数组转成相应的格式进行输出

数组分类

1、基本数据类型的数组
*动态初始化数组以后,数组的元素都会赋予一个默认值
byte short int long 0
double float 0.0
boolean false
char 空格

2、引用数据类型的数组
String 接口 自己定义的类…
引用数据类型的默认值 null

java中的内存是怎么进行分配分配的

内存的申请和释放都是JVM进行管理的,java程序要运行,jvm会自动的向电脑申请一块内存,把这块内存分为五部分:
1、栈(Stack):主要存放局部变量
2、堆(Heap):凡是new出来的东西都在堆里,堆当中的数据都有默认原则(看上述默认值)
3、方法区(Method Area):存放的是与 .class 相关的信息
4、本地方法区(Native Method Area):与操作系统有关
5、寄存器(Register):与cpu有关

冒泡排序(重点)

数组中的元素两两比较
10 20 30 40 50 60
从大到小输出
①10与20比 20往前挪一位
20 10 30 40 50 60
②10与30比 30往前挪一位
20 30 10 40 50 60
…类推
⑤10与60比 60往前挪一位
20 30 40 50 60 10
第一趟 结束,以此类推 直到从大到小输出。
n个数比较了 n-1 趟
a个数 第 t 趟比较多少次 a-t
外层循环控制趟数,内层控制次数
从大到小用< 从小到大用>

**升序
n个数字来排队
两两相比小靠前
外层循环n-1
内层循环n-1-i
**选择排序(了解)
第一轮确定数据中所有元素的最大或最小值(视情况)
int [ ] num= {25,4,56,122,2};(本例子从小到大)
2 ,25,4,56,122
第二轮找出 25 ,4, 56,122中最小的
2,4 ,25,56,122
以此类推
找出最小的,若他不是第一位就把他和第一位对调
然后出去已经找出的最小后,在剩下的元素里找最小的,再把找出来的与剩下的元素的第一位对调,重复执行,直至剩余元素只有一个。

二维数组

数组中的数组
1、声明二维数组
数据类型[ ] [ ] 数据名;
第一个中括号:二维数组中有几个一位数组 行
第二个中括号:每个一位数组中有几个元素 列
2、初始化二维数组
动态初始化
静态初始化
3、遍历方法:
for循环
foreach

(
arr[ ][ ]={{3,8,2},{2,7},{9,0,1,6}}
遍历出来是
3 8 2
2 7
9 0 1 6
java中多维数组不必都是规则矩阵形式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值