Core Java第五章知识点总结——数组


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.      高维数组

三维数组: 一维数组的一维数组的一维数组

四维数组: 一维数组的一维数组的一维数组的一维数组

……

 

 

注意复习以前知识:接下来学习面向对象

学习面向对象,不仅要学习面向对象的语法,更要注重面向对象的思想和解决问题的方式。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值