数组高级

多维数组:

数组语法:

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

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

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

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

严格上说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,剩下的都是可变参

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

数组的一些算法:

数组元素的拷贝操作:

时间: 2024-10-24 23:08:43

数组高级的相关文章

OC基础第五讲--Block、数组高级、字面量

Block 1.1block与函数指针 函数: int sum(int x, int y) { retrun x + y; } 函数指针: 把上面函数原型int sum(int x, int y)中的函数名替换成(*p),即可得到一个函数指针int (*p)(int x, int y). 这个函数表示指针p指向一个函数,这个函数有两个int型参数,返回值是int类型. Block:把函数指针int (*p)(int x, int y)中的'*'换成'^'就是我们block的声明,即int (^p

shell 之awk 关联数组高级应用

最近由于数据迁移过,有些用户信息需要再次确认下,也许数据量比较大,但是需要最终确认的比如说是用户ID和其对应的用户积分数,这样就会导致出现文本a(老的数据),文本b(新的数据).比如 1101 123 1102 111 1103 145 1104 152 这是文本a.txt 文本b.txt如下 1101 123 1102 112 1103 154 1104 152 列举的文本例子只是为了说明使用方法列举的最简单的文本,实际数据可能要复杂的多,可能会出现b.txt 中出现的ID在a.txt中没有出

JavaScript中数组高级编程实践

今天我们来全面介绍 JavaScript 中 数组的高级使用,与EcmaScript5 Array API 实战. 利用这些新的API 和 技巧,将提高你的开发效率 和 代码的水平. 理解这些原生的API是 非常有必要的,假以时日,我们也可以写出 underscore ...这样的工具库来. Come on Baby! 先看一下 Array.prototype 的全家福. 在JavaScript 中,数组就是有顺序的存储一系列值,长度动态扩容. ,先看我们的EcmaScript 规范中的  对

OC 06 Block、数组高级

主要内容: ?.Block语法 ?.Block使? 三.Block实现数组排序 Block简介 Block:块语法,本质上是匿名函数(没有名称的函数) 标准C?面没有Block,C语?言的后期扩展版本,加?了匿名函数. C++.JS.Swift等语?,有类似语法,叫做闭包. Block语法和函数指针很相似. 回顾函数指针 函数指针(变量):存放函数地址(函数名)的指针变量. int (*p)(int x,int y) = sum; 函数指针类型:int (*)(int x,int y) 即:指向

JavaScript中数组高级编程实践-2

我们来 看 EcmaScript5 规范中的 数组新的API ,它们是非常有用的, 介绍完这一部分 ,我们将用 Array 数组 这个对象 来构建 一个类似于Java中ArrayList 类, 以便于封装 通用 的逻辑,实现代码复用. API : /** @param {Function} callback @param {Object} [initialValue] @return {Object} */ Array.prototype.reduce = function(callback,i

数组高级部分--排序,查找

1.数组排序之冒泡排序: 两两比较,大的往后放放,第一次比较完毕之后,最大值就出现在了最大索引出,继续依次比较,得到一个排好序的数组! 2.数组排序之:选择排序:           用0索引依次和后面的索引进行比较,第一次比较完毕之后,最小值出现在了最小索处!               同理,其他索引也是依次进行比较! 3.数组查找 基本查找:数组元素查表法(查询数组中的元素第一次在数组中出现的索引):从头查到尾                     数组二分查找(折半查找) 思路:   

java 13-1 数组高级二级查找

查找: 1.基本查找:数组元素无序(从头找到尾) 2.二分查找(折半查找):数组元素有序 pS:数组的元素必须有顺序,从小到大或者从大到小.以下的分析是从小到大的数组 二分查找分析: A:先对数组进行对半(也就是设置 min索引为0,max索引为arr.length-1,然后对半的 索引mid为(min+max)/2) B:把所需要查找的数据x跟arr[mid]进行对比 a:两者的值相等,就返回mid索引 b:两者不等: 1.如果 x > arr[mid],则 min索引的值改变为:min =

PHP 多维数组 高级篇

在本教程之前的章节中,我们已经知道数组是一种数/值对的简单列表. 不过,有时您希望用一个以上的键存储值. 可以用多维数组进行存储. PHP - 多维数组 多维数组指的是包含一个或多个数组的数组. PHP 能理解两.三.四或五级甚至更多级的多维数组.不过,超过三级深的数组对于大多数人难于管理. 注释:数组的维度指示您需要选择元素的索引数. 对于二维数组,您需要两个索引来选取元素 对于三维数组,您需要三个索引来选取元素 PHP - 两维数组 两维数组是数组的数组(三维数组是数组的数组的数组). 首先

数组高级应用—排序与查找

1.数组排序 1)冒泡排序 /** * 冒泡排序基本概念是: * 依次比较相邻的两个数,将小数放在前面,大数放在后面. * 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后. * 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续, * 直至比较最后两个数,将小数放前,大数放后.至此第一趟结束, * 将最大的数放到了最后.在第二趟:仍从第一对数开始比较 * (因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数), * 将小数放前,大数放后,一直比较到倒数第二个数