1.数组是有序数据的集合 ,数组中的每个元素具有相同的数的数据类型 数 组 名 和 下 标 来 唯 一 地 确 定 数 组 中 的 元 素 。 数 组 有 一 维 数 组 和二维数组 。
2.Java中的一维数组的定义:
(1). type arrayName[];
//type为数组类型,arrName为数组名;
其 中 类 型 (type)可 以 为 Java中 任 意 的 数 据 类 型 ,包 括 简 单 类 型
和组 合 类 型
(2). type []
arrayName;
我个人比较喜欢后面一种,因为它有数组是一种对象的意思
3.为数组分配内存
上面的例子中没有为数组分配内存,分配内存的格式如下:
arrayName
= new type[arraySize];
当然也可以定义和分配内存一起进行的;
type [] arrayName=new
type[arraySize];
4.数组的引用:
引用数组中的莫个元素;
arrayName[index];
index为 数
组 下 标 ,它 可 以 为 整 型 常 数 或 表 达 式
5.多维数组 与 C、 C++一 样 ,Java中 多 维 数 组 被 看 作 数
组 的 数 组 。 例 如 二维数组组 为 一 个 特 殊 的 一 维数 组 ,其 每 个 元 素 又 是 一 个 一 维 数
组;
我们以二维数组为例说明Java的多维数组:
定义:
type arrayName [][];
或者type[][]
arrayName;
分配内存的方式:
(1).arrayName=new
type[size1][size2];
(2).Java可以对二维数组的分配时列数可以不同
arrayName=new type[size1][];
//此行分配了行数
arrayName[0]=new
type[size2];
..............
arrayName[size-1]=new
type[sizen];
二维数组的引用:
引 用 方 式 为 :arrayName[index1][index2] 其 中 index1、
index2为 下 标 ,可 为 整 型 常 数 或 表 达 式
初始化:
(1).直 接 对 每 个 元 素 进 行 赋 值 。 (2).
在 定 义 数 组 的 同 时 进 行 初 始 化 。 如 :int a[][]={{2,3},{1,5},{3,4}}; 定 义 了 一 个 3× 2的 数
组 ,并 对 每 个 元 素 赋
值
6.关于Java数组与C++数组的一些比较
(1).相对于C++中的数组,Java中的数组已经有了很大的改进。首
先,Java中的数组是对象,这就意味着与C++中的数组的根本不同,相反,Java中的数组与C++中的STL或Java中的容器类反而更相像一些(只
是作为对象,它的方法要比STL中的容器类或者Collection类少很多)。另外,Java中有支持数组的一套算法,就像STL中的
Algorithm与Java中的Collections类中的静态方法一样。当然,严格的说,这些算法也许并不是STL和Collections类所强
调的通用算法;但是它们是包含在标准库中的高效的算法,对于程序员来说,这些算法可以不加修改的作用于各种不同类型的数组,也算是某种程度上的通用算法
了。
(2)讨论一下Java中数组作为对象的好处:
.越界检查
. length
field:与传统的C++中的数组相比,length字段可以方便的得到数组的大小;但要注意,仅仅可以得到数组的大小,不能得到数组中实际包含多少个元素,因为length
只会告诉我们最多可将多少元素置入那个数组。 .
初始化:对象数组在创建之初会自动初始化成null,由原始数据类型构成的数组会自动初始化成零(针对数值类型),(Char)0 (针对字符类型)或者false
(针对布尔类型)。 .
数组作为返回值:首先,既然数组是对象,那么就可以把这个对象作为返回值;而且,不必担心那个数组的是否可用只要需要它就会自动存在而且垃圾收集器会在我们完成后自动将其清除