




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章 Java 语言基础,3.5 数组,数组是一个长度固定的数据结构,它存储多个相同类型的数值 数组直接被Java编程语言所支持,但是无论数组是由原始类型构成,或者带有其它类数据,数组也是一个对象 数组是一个Object类的一个不明显的扩展,所以可以指定一个数组给一个类型定义为Object的变量,3.5 数组,3.5.1 创建一维数组 在Java中,数组可以是任何类型的原始类型或类类型,也就是说,数组元素可以是原始类型的量,也可以是某一个类的对象 数组的创建一般需要以下三个步骤: 数组的声明 创建数组空间 初始化数组,3.5 数组,1、数组的声明 数组的声明和创建是有区别的,声明只需要确定数组的类型和数组名,格式如下: 数组元素类型 数组名 ; 例: int a; 数组元素类型 数组名; 例: int a; 数组的声明和对象引用的含义相同,只表示某个数组,并没有对应的内存空间。,3.5 数组,2、创建数组空间 创建是给数组分配内存空间,它可以直接使用new运算符,也可以直接用枚举来创建。格式如下: 数组名 = new 数组元素类型数组长度; 创建数组空间的工作可以和声明数组的工作组合在一起,用一条语句来实现。 int a; a= new int20; 等价于: int a= new int20; 或者使用枚举创建数组: int num = 1, 2, 3, 4 ;,3.5 数组,3、初始化数组 数组中的各元素是有先后次序的,每个数组元素用数组的名字和它在数组中的位置来表达。 在上一节创建的数组a中,a0表示数组a中的第一个元素,a1表示数组a中的第二个元素,依次类推,数组中的最后一个元素为a19 初始化数组就是要使数组中的各个元素有确定的数值 如果数组元素的类型是基本数据类型,由于基本数据类型都有缺省值,数组元素都自动初始化为缺省值。 对于以某个类的对象为数组元素的数组,初始化每个数组元素是必须的。 注意: 所有的数组都有一个属性length,这个属性存储了数组元素的个数。注意检查数组下标是否越界,3.5 数组,3.5.2 初始化一维数组 初始化是为定义好的数组进行赋值,如用枚举法定义的数组就不需要初始化了。而用new运算符定义的数组则需要根据实际情况赋值 根据数组类型,一般分为简单类型数组(数组的元素为8种基本类型)和复杂类型数组(数组元素为其它类) 简单类型数组在用new运算符建立时既分配了内存空间又赋上了初始默认值 复杂类型数组建立之后每个元素都是空值,3.5 数组,数组默认值参见下表,3.5 数组,3.5.3 数组复制 java.lang.System.arraycopy(from,fromIndex,to,toIndex,count) 数组的复制可以利用以上方法进行。 该方法从数组from的索引fromIndex位置起,复制count个元素到数组to的从索引toIndex位置开始的地方。 这里要注意,目标数组必须在调用arraycopy之前分配内存,而且这个内存空间必须足够容纳被复制的数据。,3.5 数组,3.5.4 多维数组的使用 Java没有专门的语法支持多维数组,但Java数组可以放置任何类型的元素,把一维数组放入数组内,那就成了二维数组 二维数组的定义语法如下: 数组元素类型 数组名 = new 数组元素类型数组长度; 或者 数组元素类型 数组名=new 数组元素类型数组长度; 多维数组也可以使用枚举定义。 由于二维数组在定义时只声明了数组的长度,所以在用new运算符声明二维数组后,都要为数组初始化。例:使用new运算符定义二维数组,并初始化。,3.5 数组,3.5.5 数组类的使用: 在“java.util”包中,提供一个数组类Arrays,该类提供了一些方法用于排序、查找等操作,在编制程序中可以直接使用这些方法。 1、排序 直接使用sort方法,来对数组做升序排序。sort方法常见的使用形式如下: public static void sort(Xxx a) 该方法用改进的快速排序方法对指定的数组a进行排序,其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。 sort方法还有另外一种常见的形式: public static void sort(Xxx a,int fromIndex,int toIndex) 这种形式只对数组a中指定范围内的元素(从afromIndex到atoIndex之间的元素,其中不包含atoIndex)排序。例:为整型数组排序,3.5 数组,2、查找 public static int binarySearch(Xxx a,Xxx v); 该方法用折半查找算法在指定的数组a查找值为v的元素。其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组,v是与数组a的元素类型相同的值 该方法如果在数组a查找到值为v的元素,则返回该元素的下标;如果没有找到匹配的元素,则返回一个负值r,位置-(r+1)为保持数组有序时值为v的元素应该插入的位置,3.5 数组,3、填充 public static void fill(Xx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床思维训练的重要性试题及答案
- 小厂工资测试题及答案
- 期中素养质量检测卷(第1-4单元)(含解析)-2024-2025学年数学四年级下册苏教版
- 山西对口单招试题及答案
- 图书管理员职业使命试题及答案
- 敏锐捕捉2025年公共营养师考试中提升记忆的方法试题及答案
- 中小学教师资格考试的学习者自主性与试题及答案
- 2025-2030中国电动机(马达)行业融资规模及未来投资走势预测研究报告
- 2025-2030中国电动加药泵行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国甲醇钙行业发展现状与未来趋势研究研究报告
- 9.2溶解度(第1课时饱和溶液不饱和溶液)+教学设计-2024-2025学年九年级化学人教版(2024)下册
- 中建塔吊基础设计与施工专项方案
- 【MOOC】中医与辨证-暨南大学 中国大学慕课MOOC答案
- DB32-T 4545-2023 海岸线分类与调查技术规范
- 迁坟祭文范文
- 【MOOC】金融衍生品-四川大学 中国大学慕课MOOC答案
- 【MOOC】中医临证施护-湖南中医药大学 中国大学慕课MOOC答案
- 零星维修工程 投标方案(技术方案)
- 风电制氢制甲醇一体化示范制氢制甲醇项目可行性研究报告写作模板-申批立项
- 2024年教科版(广州版)英语五年级上册期中模拟测试卷(无答案)
- 2024年人力资源行业变革:人工智能在招聘中的应用
评论
0/150
提交评论