数组的定义及使用.ppt_第1页
数组的定义及使用.ppt_第2页
数组的定义及使用.ppt_第3页
数组的定义及使用.ppt_第4页
数组的定义及使用.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MLDN 软软件教学研发发 部 JAVA 应用开发详解 数组与方法 数组定义及使用 目标 掌握数组的作用 掌握数组的声明及内存分配 通过数组的简单范例加深数组操作的理解 掌握多维数组的定义及使用 数组 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按 照使用可以分为一维数组、二维数组、多维数组。 数组的优点: 不使用数组定义100个整型变量:int i1;int i2;int i100 使用数组定义:int i100 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。 要使用Java的数组,必须经过两个步骤:(1)声明数组、(2)分配内 存给该数组。这两个步骤的语法如下: 声明形式一: 声明一维数组:数据类型 数组名 = null ; 分配内存给数组:数组名 = new 数据类型长度 ; 声明形式二: 声明一维数组:数据类型 数组名= null ; 声明一维数组 数组的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型 有整型、浮点型与字符型等。 “数组名”是用来统一这组相同数据类型的元素的名称,其命名规则和变量 的相同,建议使用有意义的名称为数组命名。 数组声明后实际上是在栈内存中保存了此数组的名称,接下来便是要在堆 内存中配置数组所需的内存,其中“长度”是告诉编译器,所声明的数组要 存放多少个元素,而“new”则是命令编译器根据括号里的长度开辟空间。 声明及开辟数组空间 声明数组: int score = null ; null表示引用数据类型的默认值 为数组开辟空间: score = new int3; 栈内存和堆内存栈内存和堆内存 程序中定义的基本类型的变量和引用类型变量在栈栈 内存内存中分配。 堆内存用来存放由new创建的对象和数组 堆栈内存的解释 数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间 数组是永远无法使用的,必须有指向的堆内存才可以使用,要想开辟新的 堆内存则必须使用new关键字,之后只是将此堆内存的使用权交给了对应 的栈内存空间,而且一个堆内存空间可以同时被多个栈内存空间指向,即 :一个人可以有多个名字,人就相当于堆内存,名字就相当于栈内存 数组 int x; x = new int100; x=null; 的内存状态变化情况 声明数组的同时分配内存空间 声明数组的同时分配内存: 数据类型 数组名 = new 数据类型个数 int score = new int10 ; 声明一个元素个数为10的整型数组score,同时开辟一块内存空间供其 使用 在Java中,由于整数数据类型所占用的空间为4个bytes,而整型数组 score可保存的元素有10个,所以上例中占用的内存共有4 * 10 = 40个 字节 数组中元素的表示方法 想要访问数组里的元素,可以利用索引来完成。Java的数组索引编号由0 开始,以一个的score10的整形数组为例,score0代表第1个元素, score1代表第2个元素,score9为数组中第10个元素(也就是最后一个 元素)。 数组的声明及输出 public class ArrayDemo01 public static void main(String args) int score = null;/ 声明数组,但未开辟堆内存空间 score = new int3;/ 为数组开辟堆内存空间 System.out.println(“score0 = “ + score0);/ 分别输出每个元素 System.out.println(“score1 = “ + score1);/ 分别输出每个元素 System.out.println(“score2 = “ + score2);/ 分别输出每个元素 for (int x = 0; x max)/ 依次判断后续元素是否比max大 max = scorex ;/ 如果大,则修改max内容 if(scorexmin)/ 依次判断后续的元素是否比min小 min = scorex ;/ 如果小,则修改min内容 System.out.println(“最高成绩:“ + max);/ 输出最大值 System.out.println(“最低成绩:“ + min);/ 输出最小值 对整型数组按照由小到大的顺序进行排列 public class ArrayDemo06 public static void main(String args) int score = 67, 89, 87, 69, 90, 100, 75, 90 ;/ 声明数组 for (int i = 1; i score.length; i+) / 循环判断 for (int j = 0; j score.length; j+) if (scorei scorej) / 交换位置 int temp = scorei; scorei = scorej; scorej = temp; for (int i = 0; i score.length; i+) / 数组输出 System.out.print(scorei + “t“); 二维数组 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表 格。 二维数组声明的方式和一维数组类似,内存的分配也一样是用new这个关键字。 其声明与分配内存的格式如下所示: 动态初始化: 数据类型 数组名 ; 数组名 = new 数据类型行的个数列的个数 ; 动态初始化: 数据类型 数组名 = new 数据类型行的个数列的个数 ; 二维数组的存储 声明整型数组score,同时为其开辟一块内存空间 int score = new int43 ; 整型数据score可保存的元素有4*3 = 12个,而在Java中,int数据类 型所占用的空间为4个字节,因此该整型数组占用的内存共为4*12 = 48个字节 二维数组的定义及使用 public class ArrayDemo08 public static void main(String args) int score = new int43;/ 声明并实例化二维数组 score01 = 30 ;/ 为数组中的部分内容赋值 score10 = 31 ;/ 为数组中的部分内容赋值 score22 = 32 ;/ 为数组中的部分内容赋值 score31 = 33 ;/ 为数组中的部分内容赋值 score11 = 30 ;/ 为数组中的部分内容赋值 for (int i = 0; i score.length; i+) / 外层循环行 for(int j=0;jscorei.length;j+)/ 内层循环列 System.out.print(scoreij + “t“); System.out.println(“) ;/ 换行 二维数组静态初始化 格式: 数据类型 数组名 = 第0行初值,第1行初值,第n行初值,; 声明二维数组: int score = 67, 61 , 78, 89, 83 , 99, 100, 98, 66, 95 ; 使用静态初始化声明一个二维数组 public class ArrayDemo09 public static void main(String args) / 静态初始化一个二维数组,每行的数组元素个数不一样 int score = 67, 61 , 78, 89, 83 , 99, 100, 98, 66, 95 ; for (int i = 0; i score.length; i+) / 外层循环输出行 for (int j = 0; j scorei.length; j+) / 内存循环输出列 System.out.print(scoreij + “t“);/ 输出每一个元素 System.out.println(“); / 换行 多维数组 经过前面一、二维数组的练习后不难发现,想要提高数组的维数,只要在 声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为int score,而四维数组为int score ,以此类推。 定义和使用三维数组 public class ArrayDemo10 public static void main(String args) / 定义一个三维数组,使用静态初始化的方式 int score = 5, 1 , 6, 7 , 9, 4 , 8, 3 ; for (int i = 0; i score.l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论