Java05-数组

NiuMT 2020-06-03 20:58:30
Java

数组特点

一维数组

声明方式:

Java 语言中声明数组时不能指定其长度 数组中元素的数 例如: int a[5 ]; //非法

// type var[];
// type[] var;
int[] ids;
// 静态初始化,数组的初始化和元素的赋值操作同时进行
ids = new int[]{1,2,3,4};
// 动态初始化,数组的初始化和元素的赋值操作分开进行
String[] names = new String[5];

int[] arr = {1,2,3,4};//类型推断

image-20201005205653011

数组是引用类型,它的元素 相当于类的成员变量 ,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化.

对于基本数据类型而言,默认初始化值各有不同

对于引用数据类型而言,默认初始化值为 null( 注意 与 0 不同!)

image-20201005211441728

多维数组

对于二维数组的理解,我们可以看成是一维数组
array1 又作为另一个一维数组 array2 的元素而存
在。其实, 从数组底层的运行机制来看,其实没
有多维数组。

格式1:动态初始化

int[][] arr = new int [3][2];
/*
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr [0], arr [1], arr [2]
给第一个一维数组1脚标位赋值为78写法是: arr[0][1] = 78
*/

格式2:动态初始化

int[][] arr = new int [3][];
/*
二维数组中有3个一维数组
每个一维数组都是默认初始化值null (注意:区别于格式 1)
可以对这个三个一维数组分别进行初始化
arr[0] = new int [3]; 
arr[1] = new int [1]; 
arr[2] = new int [2];
*/
注:
int arr = new int [][3]; //非法

格式3:静态初始化

int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

int[][] arr = {{1,2,3,4},{33,44}};//类型推断
/*
定义一个名称为arr的二维数组,二维数组中有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组arr[0] = {3,8,2}
第二个一维数组arr[1] = {2,7}
第三个一维数组arr[2] = {9.0,1,6}
第三个一维数组的长度表示方式:arr[2].length
*/

排序算法

排序算法分类:内部排序和外部排序 。

image-20201006201900601

image-20201006202612767

各种内部排序方法性能比较

排序算法的选择