首页 > 代码库 > 数组高级

数组高级

技术分享

 

多维数组:
技术分享

数组语法:

一维数组:数组中的每一个元素都是一个值.

二维数组:数组中的每一个元素都是一个数组.

三维数组:数组中的每一个元素都是一个二维数组.

---------------------------------------------------------

严格上说JAVA上不存在多维数组的概念.和C做区分.一般称之为数组中的数组.

 

二维数组的初始化问题:

二维数组初始化:int a[2][3]={{1,2,3},{4,5,6}};

int [] [] arr = new[] []{

                                                                 arr1, arr2, arr3

                                                                 }

                              int [] [] arr = new int[][] {

                                        {1, 2, 3},

                                        {4, 5},

                                        {6}   

                                        }

 二维数组的遍历:

技术分享

 

JAVA5对数组的新支持: 增强FOR循环(foreach):

  其实, 我们在操作数组的时候不关心迭代变量(数组的索引),关心的是数组的元素,有没有一种方法让我们直接操作数组元素不去操作数组的索引.

从JDK1.5开始,Java提供了一种新的语法(增强for循环.foreach)

语法:

for(数组元素类型 变量: 数组名)

{

循环体

}

 

技术分享

 

通过反编译我们可以发现.增强for循环在底层依然是用for循环+索引来实现的,我们把增强for循环成为编译器的新特性.我们可以称之为语法糖.可以让开发者写更少的代码提高效率.

ele相等于l也就是固定的某个数据.ail[k]  不会改变数组的数据.  

for循环功能比foreach更彪悍.

--------------------------------

如果迭代数组元素而不关心数组的索引的时候使用foreach.

foreach在后面还会用到集合框架.

==========================================================================================================

方法的可变参数:

 技术分享

将数组作为参数输入.用增强for循环计算.

但是这种做法的弊端有很多:为了求多个数的和, 需要新建一个数组来储存数据.

                                    如果要改变数组的数量不能修改,数组的长度是一定的.

解决的方法, 可以利用方法的可变参数:

技术分享

double ...

 技术分享

和for循环一样.语法糖.    

可变参数的底层其实就是数组.

 把double ... arr当做一个数组传入.   长度由length来不断更新.

可变参数必须作为方法的最后一个参数.如果不是的话会产生歧义.因为可变参数的个数不是确定的.所以放在最后一个.例如 Static double getSum(double x, double ... )  数据类型相同,可变参数把数据当做数组来处理,那么第一个数是double,剩下的都是可变参

=======================================================================================================================================================

数组的一些算法:

数组元素的拷贝操作:

 

数组高级