JAVA数组介绍
来源:互联网 发布:sql 2012 创建触发器 编辑:程序博客网 时间:2024/05/21 06:35
数组
数组中的元素都是同一类型。数组的长度在创建时确定,并且在创建后不变,如果需要建立存储不同类型的集合,或者要求这种数据存储结构的长度可以动态变化,可以使用Java.util包中的各种集合(Collection)类,例如Vector等。
数组的声明
我们可以声明任何类型的数组,包括基本类型和类类型的数组。数组声明和其他类型的变量声明一样,包括两个部分:数组的类型和数组的名字。数组声明语句有两种格式:
*将表示数组的"[ ]"跟随在数组变量之后。
这种格式是C,C++和JAVA标准格式,例如,
char s[ ];
Point p[ ]; //Point是一个类
*将表示数组的"[ ]"跟随在数组类型之后。
这种格式是Java中特有的,例如,
char [ ]s;
Point [ ]p; //Point是一个类
这种格式中,在数组标志”[ ]“后出现的所有变量将都是数组变量,例如,char[ ] s,m,n; //声明了3个字符数组变量s,m和n
注意:在数组的声明中不指定数组的长度。
在Java中数组是作为类来处理的。在Java中类类型变量的声明并不创建该类的对象。所以数组的声明并不创建实例数组的数据空间,而是给该数组变量分配了一个可用来引用该数组的引用空间。
数组的创建与初始化
用new创建数组
数组元素所需的内存空间是通过new运算符或通过数组初始化分配的。通过new运算符创建数组的格式如下:
new elementType[arraySize]
例如,对于前面已经声明的字符串数组s,可以利用下列语句创建它的数据空间,从而创建了一个能够容纳20个字符的数组:
s = new char[20];
数组在创建后,其元素是被系统自动进行初始化的。对于字符数组,每个元素都被初始化为‘\u0000’,而对于对象数组,每个元素都被初始化为null。在通过new实例化一个数组后,就可以对数组元素进行赋值,并进行其他操作。例如对于上面创建的数组s:
s[0]='a'j; s[1]='b';
对数组元素操作时,要注意不要产生数组越界错误。Java数组下标的取值范围是0到数组长度减1。数组s在创建后内存布局如何所示。
数组的长度
Java中为所有数组设置了一个表示数组元素个数的特型变量length,它作为数组一部分存储起来。Java用该变量在运行时进行数组越界检查,应用程序中也可以访问该变量获取数组的长度,格式如下:
arrayname.length
例如:s.length。
数组在创建后长度是不可变的。因此我们不能改变数组的长度,但可以使用该数组变量指向另一个全新的数组,则通过该变量将不能访问到原来数组的值,例如,
int a[ ] = new int[6];
a[0]=10;
........
a = new int[10];// 不用再次声明a,此时a[0]的值为0,而不是10
对象数组
我们除了创建基本类型数组,还可以创建对象数组。例如,下列语句声明、创建了一个Point类型的数组:
Point p[ ];
p = new Point[10]; //创建包含10个Point类型对象引用的数组
//创建10个Point对象
for(int i=0; i<10; i++){
p[i] = new Point(i,i++);
}
上述语句执行后,数组p在内存中的布局如图所示。
- JAVA数组介绍
- Java 语法介绍(四):数组
- Java里的数组介绍
- java面向对象思想之数组介绍
- Java之数组运用及排序介绍
- Java中的数组的介绍与使用
- java中关于数组的介绍
- java 二维数组的介绍和使用
- java基础之数组的介绍
- Java中数组的详细介绍
- java语言基础入门——数组的介绍
- 数组介绍及常用算法的 java 实现
- 第九节 java数组的介绍,数组定义,数组排序,Arrays类静态方法使用,以及源码解析
- 动态数组介绍----Delphi
- 动态数组介绍----Delphi
- 树状数组介绍(转)
- 动态数组介绍----Delphi
- Delphi动态数组介绍
- [STL基础]Iterator迭代器
- poj 3176 -- Cow Bowling (dp)
- 几种任务调度的 Java 实现方法与比较
- 移动游戏 请别迷信“一夜之间”
- 谈黑马基础题之--java证明return是在finally执行后才返回的,且在finally无法改变返回值
- JAVA数组介绍
- OpenFlashChart简明手册
- CAP原理和BASE思想 ACID模型
- linux下终端使用代理
- apache tomcat 集群 + session 复制
- xclip
- Openfire更服务器名称的方法
- oracle中char() varchar() varchar2()类型之间的联系与区别
- 深入讲解Java虚拟机系列之基础知识