数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。

注意:如果你熟悉C/C++ ,请注意,Java 数组的工作原理与它们不同。

3.11.1 一维数组

一维数组(one-dimensional array )实质上是相同类型变量列表。要创建一个数组,你必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:

type var-name[ ];

其中,type 定义了数组的基本类型。基本类型决定了组成数组的每一个基本元素的数据类型。这样,数组的基本类型决定了数组存储的数据类型。例如,下面的例子定义了数据类型为int ,名为month_days 的数组。

int month_days[];

尽管该例子定义了month_days 是一个数组变量的事实,但实际上没有数组变量存在。事实上,month_days 的值被设置为空,它代表一个数组没有值。为了使数组month_days 成为实际的、物理上存在的整型数组,你必须用运算符new 来为其分配地址并且把它赋给month_days 。运算符new 是专门用来分配内存的运算符。

你将在后面章节中更进一步了解运算符new,但是你现在需要使用它来为数组分配内存。当运算符new被应用到一维数组时,它的一般形式如下:

array-var = new type[size];

其中,type 指定被分配的数据类型,size指定数组中变量的个数,array-var 是被链接到数组的数组变量。也就是,使用运算符new 来分配数组,你必须指定数组元素的类型和数组元素的个数。用运算符new 分配数组后,数组中的元素将会被自动初始化为零。下面的例子分配了一个12个整型元素的数组并把它们和数组month_days 链接起来。

month_days = new int[12];

通过这个语句的执行,数组month_days 将会指向12个整数,而且数组中的所有元素将被初始化为零。

让我们回顾一下上面的过程:获得一个数组需要2步。第一步,你必须定义变量所需的类型。第二步,你必须使用运算符new来为数组所要存储的数据分配内存,并把它们分配给数组变量。这样Java 中的数组被动态地分配。如果动态分配的概念对你陌生,别担心,它将在本书的后面详细讨论。

一旦你分配了一个数组,你可以在方括号内指定它的下标来访问数组中特定的元素。

所有的数组下标从零开始。例如,下面的语句将值28赋给数组month_days 的第二个元素。

month_days[1] = 28;

下面的程序显示存储在下标为3的数组元素中的值。

System.out.println ( month_days [ 3 ]);

综上所述,下面程序定义的数组存储了每月的天数。

// Demonstrate a one-dimensional array.

class Array {

public static void main(String args[]) {

int month_days[];

month_days = new int[12];

month_days[0] = 31;

month_days[1] = 28;

month_days[2] = 31;

month_days[3] = 30;

month_days[4] = 31;

month_days[5] = 30;

month_days[6] = 31;

month_days[7] = 31;

month_days[8] = 30;

month_days[9] = 31;

month_days[10] = 30;

month_days[11] = 31;

System.out.println("April has " + month_days[3] + " days.");

}

}

当你运行这个程序时,它打印出4月份的天数。如前面提到的,Java 数组下标从零开始,因此4月份的天数数组元素为month_days[3] 或30。

将对数组变量的声明和对数组本身的分配结合起来是可以的,如下所示:

int month_days[] = new int[12];

这将是你通常看见的编写Java 程序的专业做法。

数组可以在声明时被初始化。这个过程和简单类型初始化的过程一样。数组的初始化(array initializer )就是包括在花括号之内用逗号分开的表达式的列表。逗号分开了数组元素的值。Java 会自动地分配一个足够大的空间来保存你指定的初始化元素的个数,而不必使用运算符new。例如,为了存储每月中的天数,下面的程序定义了一个初始化的整数数组:// An improved version of the previous program.

class AutoArray {

public static void main(String args[]) {

int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,

30, 31 };

System.out.println("April has " + month_days[3] + " days.");

}

}

当你运行这个程序时,你会看到它和前一个程序产生的输出一样。

Java 严格地检查以保证你不会意外地去存储或引用在数组范围以外的值。Java 的运行系统会检查以确保所有的数组下标都在正确的范围以内(在这方面,Java 与C/C++ 从根本上不同,C/C++ 不提供运行边界检查)。例如,运行系统将检查数组month_days 的每个下标的值以保证它包括在0和11之间。如果你企图访问数组边界以外(负数或比数组边界大)的元素,你将引起运行错误。

下面的例子运用一维数组来计算一组数字的平均数。

// Average an array of values.

class Average {

public static void main(String args[]) {

double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};

double result = 0;

int i;

for(i=0; i<5; i++)

result = result + nums[i];

System.out.println("Average is " + result / 5);

}

}

3.11.2 多维数组

在Java 中,多维数组(multidimensional arrays )实际上是数组的数组。你可能期望,这些数组形式上和行动上和一般的多维数组一样。然而,你将看到,有一些微妙的差别。定义多维数组变量要将每个维数放在它们各自的方括号中。例如,下面语句定义了一个名为twoD 的二维数组变量。

计算机等级考试二级java数组辅导.doc

下载Word文档到电脑,方便收藏和打印[全文共2354字]

编辑推荐:

下载Word文档

java 2维数据便利_计算机等级考试二级java数组辅导相关推荐

  1. 二级计算机c语言教材下载,全国计算机等级考试(二级)—C语言辅导教材

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp资格/认证考试&nbsp>&nbsp计算机等级考试 全国计算机等级考试(二级)-C语言辅导教 ...

  2. 计算机等级考试java题型_全国计算机等级考试二级JAVA笔试题目

    全国计算机等级考试二级JAVA笔试题目 导语:Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.下面是计算机二级考试Java语言的模拟试题 ...

  3. 上海市计算机二级java程序设计真题_上海市计算机等级考试二级java程序设计.doc...

    上海市计算机等级考试二级java程序设计.doc 程序填空题第1题.程序实现青年歌手比赛的评分计算.其计算方法是将十位评委的个人评分去掉其中的最高分和最低分,然后输出其余评委评分的平均值作为该歌手的最 ...

  4. 2018java计算机二级考试试题和答案,2018年计算机等级考试二级JAVA习题答案(1)

    <2018年计算机等级考试二级JAVA习题答案(1)>由会员分享,可在线阅读,更多相关<2018年计算机等级考试二级JAVA习题答案(1)(6页珍藏版)>请在人人文库网上搜索. ...

  5. 2007年4月全国计算机等级考试二级java笔试,2006年4月全国计算机等级考试二级JAVA笔试试题...

    <2006年4月全国计算机等级考试二级JAVA笔试试题>由会员分享,可在线阅读,更多相关<2006年4月全国计算机等级考试二级JAVA笔试试题(9页珍藏版)>请在人人文库网上搜 ...

  6. 2011年计算机等级考试二级java笔试练习题(10)_2010年3月计算机等级考试二级Java笔试题及答案...

    2010年3月计算机等级考试二级Java笔试真题 一.选择题(每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的.请将正确选项填涂在答题卡相应位置上,答在试卷上不得 ...

  7. 2014全国计算机等级考试二级java,全国计算机等级考试二级Java真题2

    全国计算机等级考试二级Java真题2 一.选择题(每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的.请将正确选项填涂在答题卡相应位置上,答在试卷上不得分. (1) ...

  8. 全国计算机等级考试——二级JAVA完整大题题库【五十三道】

    全国计算机等级考试二级 JAVA 题目内容 编写于2023.04.10 分为40道选择题和3道大题(大题是程序填空类型) 其中选择题只能进去做一次,一旦退出来则不可再进(注意!).大题可以重复进入,重 ...

  9. 二级java pdf_全国计算机等级考试二级Java语言程序设计.PDF

    全国计算机等级考试二级Java语言程序设计 全国计算机等级考试二级Java语言程序设计 ① 考试大纲 (2013年版) 基本要求 1.掌握Java语言的特点.实现机制和体系结构. 2.掌握Java语言 ...

最新文章

  1. BufferedReader 中的 readLine()
  2. 区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值
  3. Lesson 1#03-Python安装与Hello Python World
  4. 32岁武汉硕士毕业4年后重新高考,考上本硕需再读8年:“不是一时冲动”
  5. VIP - virtual IP address
  6. 【Flink】Flink kafka报错 Auto-commit of offsets failed for group Offset commit failed with a retriable
  7. 机器学习模型部署文章存档
  8. [暗黑破坏神2]PLUGY与HACKMAP共存
  9. java生成zipf分布_统计分布-Zipf分布
  10. 【韩语图片文字识别】如何快速识别韩语图片文字,将文字变成电子档,进行翻译处理教程
  11. Python学习笔记(15)-Python代码转换为exe可执行程序详解
  12. 微软人工智能公开课.md
  13. I2C器件之PCF8574TS调试记录
  14. java 兑换码生成_java生成兑换码礼包码--工具类
  15. 复杂、繁杂、庞杂:图解七种代码耦合类型
  16. MySQL的varchar水真的太深了——InnoDB记录存储结构
  17. 《精彩网址大全——工商经济科学教育卷》内容简介
  18. centos7下载spark连接mysql数据库提取数据(pyspark,Scala,python独立执行)
  19. Java开发工程师与大数据开发工程师有何区别?
  20. 面试经验之:蚂蚁饿了么抖音美团等多家面试问题!简历优化等

热门文章

  1. 想让好友不停地擦手机屏幕?微信头像这样设置就行了!
  2. 这款可视化工具,Java 调优起来真的 so easy啊
  3. 如何实现一个可复用的分布式事务消息架构方案?
  4. adb查看手机cpu使用率_记录一下Unity打包Android在骁龙cpu上概率性卡死的问题
  5. umi不输出html文件,部署 - UmiJS 中文文档
  6. java poi 导出 国际化_更好用的excel国际化多语言导出
  7. oracle 数据库里查看表空间使用状况
  8. cannot import name ‘softmax‘ from ‘scipy.special‘
  9. dropblock torch
  10. CUDA out of memory in pytorch