- 浏览: 134827 次
文章分类
最新评论
数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。
1. 一维数组
1.1 一维数组的定义
type arrayName[];
type[] arrayName;
其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。
第二种形式对C++开发者可能觉得很奇怪,不过对JAVA或C#这样的开发语言来说,第二种形式可能更直观,因为这里定义的只是个变量而已,系统并未对其实例化,只需指明变量的类型即可,也不需在[]指定数组大小。(第一种形式是不是只是为了兼容以前的习惯,毕竟C语言的影响太大了?)
例如:
int intArray[];
声明了一个整型数组,数组中的每个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。我们必须为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=new type[arraySize];
其中,arraySize指明数组的长度。如:
intArray=new int[3];
为一个整型数组分配3个int型整数所占据的内存空间。
通常,这两部分可以合在一起,格式如下:
type arrayName=new type[arraySize];
例如:
int intArray=new int[3];
1.2 一维数组元素的引用
定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。数组元素的引用方式为:
arrayName[index]
其中:index为数组下标,它可以为整型常数或表达式。如a[3],b[i](i为整型),c[6*I]等。下标 从0开始,一直到数组的长度减1。对于上面例子中的in-tArray数来说,它有3个元素,分别为:
intArray[0],intArray[1],intArray[2]。注意:没有intArray[3]。
另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。
- public class ArrayTest{
- public static void main(String args[]){
- int i;
- int a[]=new int[5];
- for(i=0;i<5;i++)
- a[i]=i;
- for(i=a.length-1;i>=0;i--)
- System.out.println("a["+i+"]="+a[i]);
- }
- }
运行结果如下:
C:/>java ArrayTest
a[4]=4
a[3]=3
a[2]=2
a[1]=1
a[0]=0
该程序对数组中的每个元素赋值,然后按逆序输出。
1.3 一维数组的初始化
对数组元素可以按照上述的例子进行赋值。也可以在定义数组的同时进行初始化。
例如:
int a[]={1,2,3,4,5};
用逗号(,)分隔数组的各个元素,系统自动为数组分配一定空间。
与C中不同,这时Java不要求数组为静态(static),其实这里的变量类似C中的指针,所以将其作为返回值给其它函数使用,仍然是有效的,在C中将局部变量返回给调用函数继续使用是初学者很容易犯的错误。
2. 多维数组
与C、C++一样,Java中多维数组被看作数组的数组。例如二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。下面我们主要以二维数为例来进行说明,高维的情况是类似的。
2.1 二维数组的定义
二维数组的定义方式为:
type arrayName[][];
例如:
int intArray[][];
与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符new来分配内存,然后才可以访问每个元素。
对高维数组来说,分配内存空间有下面几种方法:
1. 直接为每一维分配空间,如:
int a[][]=new int[2][3];
2. 从最高维开始,分别为每一维分配空间,如:
int a[][]=new int[2][];
a[0]=new int[3];
a[1]=new int[3];
完成1中相同的功能。这一点与C、C++是不同的,在C、C++中必须一次指明每一维的长度。
2.2 二维数组元素的引用
对二维数组中每个元素,引用方式为:arrayName[index1][index2] 其中index1、index2为下标,可为整型常数或表达式,如a[2][3]等,同样,每一维的下标都从0开始。
2.3 二维数组的初始化
有两种方式:
1. 直接对每个元素进行赋值。
2. 在定义数组的同时进行初始化。
如:int a[][]={{2,3},{1,5},{3,4}};
定义了一个3×2的数组,并对每个元素赋值。
发表评论
-
java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
2013-05-13 13:13 1230主要实现把java对常用的一些数据转换成Json,以便前台的 ... -
(转载)Java Socket实战之五:使用加密协议传输对象
2013-01-07 16:38 627前面几篇博文提到了Socket中一些常用的用法,但是对于一些有 ... -
(转载)Java Socket实战之四:传输压缩对象
2013-01-07 16:28 580上一篇文章说到了用Java Socket来传输对象,但是在有 ... -
(转载)Java Socket实战之三:传输对象
2013-01-07 16:25 660前面两篇文章介绍了怎样建立Java Socket通信,这一篇 ... -
(转载)Java Socket实战之二:多线程通信
2013-01-07 16:23 975说到怎样写一个最简单的Java Socket通信,但是在上一 ... -
(转载)Java Socket实战之一:单线程通信
2013-01-07 15:46 662现在做Java直接使用Socket的情况是越来越少,因为有很 ... -
map的三种遍历方法!
2012-12-20 16:54 623map的三种遍历方法! 集合的一个很重要的操 ... -
(转载)fastJson
2012-12-13 10:48 638FastJSON是一个很好的java开源json工具类库,相比 ... -
(转载)FTP文件上传与下载
2012-12-06 15:14 796实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有 ... -
ORA-01460: 转换请求无法实现或不合理
2012-11-27 17:27 3902oracle10g数据库执行数据库更新sql时报错: Cau ... -
配置TOMCAT(,JAVA_HOMECATALINA_HOME,CLASSPATH)环境变量
2012-11-18 15:42 4661配置TOMCAT(,JAVA_HOMECATALI ... -
(转载)验证码无法显示:Could not initialize class sun.awt.X1 解决方案
2012-11-16 14:41 666网站验证码突然无法显示,并报如下错误。 Caused by: ... -
(转载)linux 下tomcat 报java.lang.OutOfMemoryError: PermGen space及其解决方法
2012-11-16 11:20 611PermGen space的全称是Permanent Gene ... -
JSP内置对象
2012-11-13 15:42 5571.request对象 客户端的请求信息被封装 ... -
用Java删除文件夹里的所有文件
2012-11-11 15:27 804import java.io.File;publ ... -
通过Java几行代码截取屏幕
2012-11-11 15:25 552通过java.awt.Robot的createScreenCa ... -
oracle日期类型字段的操作
2012-10-26 09:32 676在java对oracle的操作中 ... -
验证码无法显示:Could not initialize class sun.awt.X1 解决方案
2012-10-22 11:10 1001网站验证码突然无法显示,并报如下错误。 Caused by: ... -
http协议-简介
2012-09-29 17:43 743一、简介 超文本传输 ... -
java socket编程
2012-09-29 17:41 557一,网络编程中两个 ...
相关推荐
43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip...
java数组与方法数组的定义及使用
Java数组定义与遍历练习题
本章主要介绍数组的概念及定义,并简单介绍了数组的引用传递,及数组的动态、静态初始化及二维数组的定义和使用。
java中数组的定义及使用方法详解.docx
java中数组的定义及使用方法详解.pdf
JAVA【第4章:数组与方法】_数组的定义及使用
主要介绍了Java数组的定义、初始化、及二维数组用法,结合具体实例形式分析了java数组概念、功能、数组定义、静态数组、动态数组、二维数组等相关使用技巧,需要的朋友可以参考下
//定义一个存储5个int类型的数组 //通过索引值访问数组的元素 data[0] = 15; data[1] = 20; //for循环遍历数组的所有元素 for( int I = 0 ; I ; I ++ ){ System.out.println( data[I] ); //没有赋值的数组...
Java中数组的定义与使用
java学习-java中的数组定义和传参
【第4章:数组与方法】_数组的定义及使用笔记
1. 编写一个程序打印数出有10个元素的浮点数组a1中最大值和最小值。 2.将有10个元素的数组a1 拷贝至含有15个元素的数组b1的一段位置。 3.将一个已存入数组中的值45,89,7,6,0,按0,6,7,89,45的次序打印...
编写一个程序,允许用户向一个大小为10...此外,程序还应使用下面定义的NumberNotFoundException异常处理类。如果试图访问超出数组边界的元素,则捕获ArrayIndexOutOfBoundsException异常,并显示一个合适的错误信息。
java中用数组为一个类定义多个对象,并对其进行实例化
数组的定义,数组元素的访问,数组的存储方式,多为数组,数组的操作方法
//定义minindex并赋初值用于保存最小值的下标 int min; //定义min用于保存最小值 min=a[0]; //数组的第一个数设为最小值 for(i=1;i;i++) //因为min=[0],所以i从1开始 { if(a[i]) //如果有比min小...
1. 统计并输出大写字母、小写字母、数字和其它字符的数量。... 定义一个数组,描述一个二维多边形顶点集合,遍历数组输出所有点的坐标值 2. 定义学生类,访问类的实例成员和类成员 、实例方法和类方法
下面小编就为大家带来一篇java中数组的定义及使用方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
理解数组作为方法形参,方法体内数组的使用 复习:方法定义的语法 数组作为方法的形参 修饰符 返回值类型 方法名(参数列表){ //方法体 } 基本类型 引用类型 基本类型 引用类型 任务:编写方法实现下列一维数组的...