Java编程基础(四)
常用的数据结构 – 数组
数组
数组,顾名思义就是一组数据。在Java中,数组也可以视为一种数据类型。它本身就是一种引用类型。Java的数组既可以存储基本类型的数据,也可以存储引用数据类型的数据。
一维数组
含义:一组数据的容器;
作用:存放数据,并操作数据
声明与内存的分配
数据类型[] 数组名;//声明一维数组名
数组名 = new 数据类型[个数];//分配内存给数组
数据类型[] 数组名 = new 数据类型[个数]//简洁方式
概念
元素:数组中存放的数据
下标\索引:元素的编号(从0开始)
注意
1、数组是引用数据类型
2、new 表示新建对象,会在堆内存开辟空间
3、数组一旦初始化,长度不可改变
4、下标为负或超过数组长度,报错:”数组下标越界“
5、数组初始化开辟的空间是连续的
数组的初始化
静态初始化:程序员指定元素,系统自动分配长度。
动态初始化:程序员指定长度,系统自动分配元素。
默认值
整型:0
浮点型:0.0
字符型:’ ’
布尔型:false
引用型:null(空)
静态初始化 vs 动态初始化
一开始我们就知道数据,使用静态初始化
一开始我们就知道长度,使用动态初始化
for vs foreach
遍历时需要操作下标的功能,使用for
遍历时不需要操作下标的功能,使用foreach
数组的排序
冒泡排序
口诀:
N个数字来排队
两两相比小靠前
外层循环N-1
内层循环N-1-i
数组的查找
1、顺序查找:从头到尾遍历
2、二分查找:
前提条件:必须先排序
数组的复制
缺点:更改原数组,新数据中的数据也跟着改变
数组的删除
缺点:数组作为容器,是存储数据的,不要轻易把容量改小
数组作为返回及参数
可变参数
总结:
1、可变参数底层就是数组
2、形参为可变参数,调用时可以根据需求传参或不传参
3、调用时传入的数据作为元素压入搭配数组中
4、可变参数后面不允许声明其他参数
Arrays工具类
Arrays:Java个我们提供的专门操作数组的类,提供了一些排序、查找、替换…
工具类:该类中的方法都是静态的,使用类名调用即可
API:Java的使用说明
二维数组
含义:二维数组中包含了多个一维数组
注意
1.二维数组是引用数据类型
2.元素:数组中的数据
3.下标/索引:每个元素的编号
4.下标从0开始
5.数组初始化后长度不可以改变
6.数组分配的空间是连续的
数组的声明与分配内存
数据类型[][] 数组名 = new 数据类型[行数][列数];
数组的初始化
静态初始化:程序员指定元素,系统自动分配长度。
动态初始化:程序员指定长度,系统自动分配元素。
遍历的思路
先取出二维数组中的一维数组,再遍历一维数组中的元素