数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。
数组的常见概念 :数组名 、下标(或索引) 、元素 、数组的长度
1.数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。
2.创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址。
3.数组的长度一旦确定,就不能修改。
一维数组
1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
2.每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长 度(元素个数);
3.数组是引用类型,它的元素相当于类的成员变量,因此数组一经 分配空间,其中的每个元素也被按照成员变量同样的方式被隐式 初始化。例如:
多维数组
从数组底层的运行机制来看,其实没有多维数组。
数组算法
排序算法分类:内部排序和外部排序。
内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排序操作都在内存中完成。
外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最常见的是多路归并排序。可以认为外部排序是由多次内部排序组成。
十大内部排序算法:
选择排序:
直接选择排序、堆排序
交换排序:
冒泡排序、快速排序
插入排序:
直接插入排序、折半插入排序、Shell(希尔)排序
归并排序
桶式排序
基数排序
排序算法性能对比:
数组工具类
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。