Core Java第五章知识点总结——数组
知识点预览
数组的概念
数组的语法
数组排序
数组扩充
二维数组与高维数组
数组的概念
1.什么是数组
2.数组的概念:一次性的定义多个变量
数组的语法
1.数组的声明
a)int [] a;------->项目开发推荐使用
b)int a[];
2.数组的空间分配
a)a = new int[5];
b)先声明、后分配
int [] a;
a = new int[5];
c)声明、分配同时进行
int [] a = new int[5];
3.数组在内存中的表示
a)int [] a = new int[5];
空间连续、挨着,密不可分
4.数组的特点
a)数组所创建的内存空间只能存储相同数据类型的数据
b)数组所分配的内存空间是连续的
c)数组所分配的内存空间是不可扩充的
5.数组存储数据的值
a)数组元素的默认值(各种各样的0)
说明:’\u0000’:Unicode编码
局部变量:先赋值后使用
数组元素:未初始化,有默认值
b)数组的显式赋值
6.数组的遍历
a)按照一定的顺序依次操作数组的每一个元素
b)for循环(引入下标)
7.数组的length属性
a)arrayVar.length:用于获得数组长度
8.封装遍历函数
a)经常使用的代码------>进行封装
9.数组创建的其他方式
a)int [] a = {1,2,3};
b)int [] b = new int[]{11,22,33};
c)说明:以上两种方式不可以拆开写int [] b = new int[3]{11,22,33}; 错误
d)补充:C#:int [] b = new int[3]{11,22,33}; 正确
10.数组常见错误
a)开发:语法、思路、设计思想、积累常见错误
b)java.lang.ArrayIndexOutOfBoundsException数组越界异常
如:int [] a = new int[3]; System.out.println(a[4]);
11.思考题
byte b[] = {1,2,3};
byte a [] = b;
a[0] = 10;
System.out.println(b[0]);
先思考……
答案:10
数组排序
1. java.util.Arrays.sort(array);
数组扩充
1.思路
int [] a = new int[3];
a)创建一个新的数组 int [] b = new int[6];
b)把老数组的数据复制到新数组 a---->b(复制)
c)让老数组指向新数组的地址 a = b;
2.第一种方式
int [] a = new int[3];
int [] b = new int[a.length * 2];
for(int i = 0; i < a.length;i ++){
b[i] = a[i];
}
a = b;
3.第二种方式System.arraycopy()
int [] a = new int[3];
int [] b = new int[a.length * 2];
System.arraycopy(a,0,b,0,a.length);
a = b;
4.第三种方式 java.util.Arrays.copyOf
前提:JDK 1.6开始提供这个方法
int [] a = new int[3];
int [] b = java.util.Arrays.copyOf(a,a.length);
a = b;
注意:数组扩充不能在原有基础上
二维数组与高维数组
1.什么是二维数组
int[][] a = new int [2][3];
2:低维度 行
3:高维度 列
2.二维数组的使用
a)二维数组的赋值
i.a[0][0] = 10;……a[1][2] = 22;
ii.int [][] b = {{11,22},{21,22}};
b)二维数组的本质
一维数组的一维数组(Java里的二维数组不是真正意义上的二维数组)
int [][] a = newint [2][3];
c)二维数组的长度
i.a.length ------>外层数组(行)
ii.a[0] .length ------>内层数组(列)
d)二维数组的遍历
int i = 0; i< a.length;i++
int j = 0; j < a[i].length;j++
a[i][j];
e)不规则的二维数组
int [][] a = newint [2][];
a[0] = new int[3];
a[1] = newint[2];
3.高维数组
三维数组: 一维数组的一维数组的一维数组
四维数组: 一维数组的一维数组的一维数组的一维数组
……
注意复习以前知识:接下来学习面向对象
学习面向对象,不仅要学习面向对象的语法,更要注重面向对象的思想和解决问题的方式。