数组

数组定义:多个相同类型的数据的组合。

数组的说明:

定义:多个相同类型的数据的组合。
目的:为了在内存中对数据进行统一的管理。
1.数组本身,属于引用数据类型
2.数组的元素,可以是基本数据类型,也可以是引用数据类型

一:一维数组的声明与初始化
正确的方式:
//静态初始化:数组的声明、初始化和数组元素的赋值是同时进行的。
String[] names = new String[]{"林","张","李","高"};
//简化:
String[] names1 = {"林","张","李","高"};

//动态初始化:数组的声明、初始化和数组元素的赋值是分开进行的。
int[] ages = new int[4];

//结论:不管是静态初始化还是动态初始化,一旦数组声明创建完成,数组的长度就确定了。
而且长度不可改变!注:不管是动态还是静态初始化数组,一定在创建的时候,就指明了数组的长度!

错误的声明方式:
//String[] names2 = new String[4]{"林","张","李","高"};
//String[4] names3 = new String[]{"林","张","李","高"};

3.数组元素的引用
通过数组的角标,调用数组的指定的元素。角标从0开始,到数组的长度-1结束。

4.数组的属性:length:数组的长度

5.数组的遍历
for(int i = 0;i < ages.length;i++){
System.out.println(ages[i]);
}

6.数组元素的默认初始化值
//5.1 整型(byte\short\int\long的数组元素:0
//5.2 浮点型(float\double的数组元素:0.0
//5.3字符型(char的数组元素:'\u0000' 或 0,不是'0'
//5.4 布尔型(boolean)的数组元素:false
//5.5 引用数组类型的数组元素:null 不同于"null"
2.空指针异常:NullPointerException

//情况一:
// int[] arr1 = new int[10];
// arr1 = null;
// System.out.println(arr1[0]);

//情况二:
// int[][] arr2 = new int[4][];
// System.out.println(arr2[1]);//null
// System.out.println(arr2[1][1]);//空指针异常

//情况:
// String[] arr3 = new String[]{"AA","BB","CC"};
// arr3[0] = null;
// System.out.println(arr3[0].toString());

重点:.二维数组元素的默认初始化值
int[][] arr1 = new int[3][];
arr1[0] = new int[3];

System.out.println(arr1[0]);//地址值 ,因为已经new创建对象了,堆中分配了空间。
System.out.println(arr1[1]);//null ,因为创建对象。
System.out.println(arr1[0][0]);//0
3.数组中的常见操作

1.针对于数值型的数组:求最大值、最小值、总和、平均数。
2.复制一个数组,实现数组元素的反转
int[] array1,array2;
array1 = new int[]{1,2,3};
//赋值(赋值不是复制)
array2 = array1;(操作修改array2中的值,array1中的值也会被修改,两者在内存中指向同一对象)
//复制
array2 = new int[array1.length];
for(int i = 0;i < array2.length;i++){
array2[i] = array1[i];
}

4.数组的排序算法
选择排序
冒泡排序、快速排序

你可能感兴趣的:(数组)