欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第5章数组ppt课件.ppt

    • 资源ID:2566897       资源大小:475.51KB        全文页数:54页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章数组ppt课件.ppt

    第5章 数组,本章要点,掌握一维数组创建和使用的方法 掌握二维数组创建和使用的方法 掌握如何遍历数组 掌握如何复制数组 掌握如何填充数组 掌握如何排序数组元素 掌握如何查找数组元素,第5章 数组,5.1 数组概述 5.2 一维数组 5.3 二维数组 5.4 数组的基本操作,主要内容,5.1 数组概述,数组元素有以下五个主要特征 数组是相同数据类型元素的集合。 数组元素在内存中按先后顺序存放。 每个数组元素都用数组名及下标表示。 数组下标从0开始 每个数组都有长度,即元素个数。,5.2 一维数组,5.2.1 创建一维数组 5.2.2 初始化一维数组,5.2.1 创建一维数组,在使用数组之前,必须首先定义数组变量所属的类型,即声明数组 声明一维数组有两种形式,语法如下所示:,数组元素类型 数组名字 ; 数组元素类型 数组名字;,5.2.1 创建一维数组,数组的声明(Declaration) 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间 不能直接使用,必须经过初始化分配内存后才能使用,声明数组后,要想使用数组还要为其分配内存空间,分配内存空间时必须指明数组的长度。 数组使用new关键字进行内存分配。 分配内存空间的语法如下所示:,5.2.1 创建一维数组,数组名字 = new 数组元素类型数组元素个数;,也可以在创建数组时直接为变量进行赋值。,数组元素类型 数组名 = new数组元素类型数组元素个数;,5.2.1 创建一维数组,用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。 元素个数可以是常量也可以是变量。 基本类型数组的每个元素都是一个基本类型的变量; 引用类型数组的每个元素都是对象的引用。,5.2.1 创建一维数组,arryName=new Typecomponets number; 例如: int ai; ai=new int10; String s; s=new String3; 或者可以将数组的声明和创建一并执行 int ai=new int10; 可以在一条声明语句中创建多个数组 String s1=new String3, s2=new String8;,5.2.2 初始化一维数组,数组可以与基本数据类型一样进行初始化操作,数组的初始化可分别初始化数组中每个元素。 数组的初始化有两种形式,如下所示:,int arr = new int1,2,3,5,25; int arr2 = 34,23,12,6;,5.2.2 初始化一维数组,声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元素进行初始化 int a=22, 33, 44, 55; 创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。 基本类型数值数据,默认的初始值为0; boolean类型数据,默认值为false; 引用类型元素的默认值为null。,数组的引用,通过下面的表达式引用数组的一个元素: arrayNameindex 数组下标必须是 int , short, byte, 或者 char 下标从零开始计数 元素的个数即为数组的长度,可以通过 arryName.length引用 元素下标最大值为length-1,如果超过最大值,将会产生数组越界异常,数组的引用,数组名是一个引用:,int a1 = 1, 2, 3, 4, 5 ; int a2; a2 = a1; for(int i = 0; i a2.length; i+) a2i+; for(int i = 0; i a1.length; i+) System.out.println( “a1“ +i+“ = “+a1i);,数组元素的赋值:随机数,1. 通过Math类生成随机数 Math.random() 默认生成0.0,1.0)的double型随机数, 即0 = Math.random() 1.0 (int)(Math.random()*N) M+(int)(Math.random()*(N-M),数组元素的赋值:随机数,2. 使用Random类生成随机数 java.util.Random类 Random r=new Random();,r.nextInt( ) /产生一个随机整数 r.nextInt(int n ) /产生 0,n)之间的随机整数 r.nextFloat( ) /产生一个随机浮点数值 r.nextDouble ( ) /产生一个随机双精度数值,常用的数学运算方法,Math类包含了所有用于数学运算的函数方法,这些方法都是静态的 方法的调用格式:“Math.数学方法” 在Math类中除了函数方法之外还存在两个常用数学常量,分别为圆周率、E: Math.PI Math.E,常用的数学运算方法,1. 三角函数类: Math.sin(double x) Math.cos(double x) Math.tan(double x) 2.指数函数类: Math.exp(double x) /ex Math.log(double x) /lnx Math.sqrt(double x) /x1/2 Math.pow(double x,double y) / xy,5.3 二维数组,5.3.1 创建二维数组 5.3.2 初始化二维数组,5.3.1 创建二维数组,声明二维数组的方法有两种,语法: 数组元素类型 数组名字 ; 数组元素类型 数组名字;,二维数组可以看成由多个一维数组所组成,在给二位数组分配内存时,可以为这些一维数组同时分配相同的内存。 第一个方括号中数字是一维数组的个数,第二个方括号中数字是这些一维数组的长度。,5.3.1 创建二维数组,对于多维数组有两种为数组分配内存的方式。 1)直接为每一维分配内存空间。 为每一维数组分配内存,实例代码如下: a = new int24;,5.3.1 创建二维数组,2)可分别为每一维分配内存 分别为每一维分配内存,实例代码如下: a = new int2; a0 = new int2; a1 = new int3;,5.3.2 初始化二维数组,二维数组的初始化同一维数组初始化类似,同样使用大括号完成二维数组的初始化。 语法: type arrayname = value1,value2valuen;,每个value都是一个大括号定义的新一维数组,说明:对于整型二维数组,创建成功之后系统会赋给数组中每个元素初始化值0。,int myarr = 12,0,45,10;,5.4 数组的基本操作,5.4.1 遍历数组 5.4.2 复制数组 5.4.3 填充数组 5.4.4 排序数组元素 5.4.5 查找数组元素,5.4.1 遍历数组,遍历数组有两种常用的方式,使用for循环和使用foreach循环。 两者的区别在于for循环能够在遍历过程中修改数组中的元素,而foreach循环不行。,5.4.1 遍历数组,【例5-1】循环输出数组中的元素,int array = new int5; for(int i=0; iarray.length;i+) arrayi = i; System.out.println(“数组中的元素:“); for (int i : array) System.out.print(i + “ “); ,遍历二维数组for语句,遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。,int b = new int 1 , 2, 3 , 4, 5, 6 ; for (int i = 0; i b.length; i+) for (int j=0; jbi.length; j+) System.out.print(bij +“ “); System.out.println(); ,遍历二维数组foreach语句,int arr2 = 4, 3 , 1, 2 ; System.out.println(“数组中的元素是:“); for (int x : arr2) for (int e : x) System.out.print(e + “ “); ,5.4.2 复制数组,java.util.Arrays类中的copyOf()方法和copyOfRange()方法都可以实现数组的复制功能,并且它们都提供了多种重载形式。 使用copyOf()复制数组语法。 public static int copyOf(int original, int newLength) original:需要进行复制的数组。 newLength:复制完成后,新生成数组的长度。该值可以大于original数组元素的个数。,补充:方法重载,在Java中允许用同一方法名定义多个方法,这些方法的参数个数或参数类型不同,这就是方法的重载(function overloading)。 方法重载有两点要求: 重载的方法名称必须相同; 重载方法的形参个数或类型必须不同,对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候就构成方法重载。 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。 重载的时候,方法名要一样,但是参数类型或个数不一样,返回值类型可以相同也可以不相同。,补充:方法重载,补充:方法重载参数个数不同,public class Test public void a( ) ; public void a( int i) ; ,补充:方法重载参数类型不同,public class Test public void a(int i) ; public void a(String j) ; ,补充:方法重载参数类型不同,public class Test public void a(int i,String j) public class a(String j,int i) ,5.4.2 复制数组,java.util.Arrays类中的copyOf()方法和copyOfRange()方法都可以实现数组的复制功能,并且它们都提供了多种重载形式。 使用copyOf()复制数组语法。 public static int copyOf(int original, int newLength) original:需要进行复制的数组。 newLength:复制完成后,新生成数组的长度。该值可以大于original数组元素的个数。,5.4.2 复制数组,使用copyOfRange()复制数组语法。 public static int copyOfRange(int original, int from, int to) original:需要进行复制的数组。 from:开始复制的数组索引,该值必须=0,小于original数组元素的个数。 to:要复制范围的最后索引位置。可以大于数组arr的长度。新数组不包括索引是to的元素。,5.4.2 复制数组,【例5-2】复制数组,int array = 1, 2, 3, 4 ; int arrayCopy=Arrays.copyOf(array,6); int arrayRangeCopy=Arrays. copyOfRange(array,2,6); System.out.print(“原数组:“); for (int i : array) System.out.print(i + “ “); System.out.println();,5.4.2 复制数组,【例5-2】复制数组,System.out.print(“复制数组:“); for (int i : arrayCopy) System.out.print(i + “ “); System.out.println(); System.out.print(“部分复制数组:“); for (int i : arrayRangeCopy) System.out.print(i + “ “); ,5.4.2 复制数组,System提供了一个静态方法arraycopy(),可以用来实现数组之间的复制。其函数原型是:,public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length),5.4.2 复制数组,【例】 arraycopy复制数组,char copyFrom= 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' char copyTo = new char7; System.arraycopy(copyFrom, 2, copyTo, 0, 7); System.out.println(new String(copyTo);,5.4.3 填充数组,java.util.Arrays类中的fill()方法可以用来填充数组,即将数组部分或者全部元素赋值为某个元素。 该类中提供了多种fill()方法的重载方法,以int类型数组为例: public static void fill(int a, int val) a:需要填充的数组。 val:用来填充数组的元素值。,5.4.3 填充数组,【例5-4】使用fill()方法将数组中全部元素赋值为5,然后输出赋值结果。,int array = new int5; Arrays.fill(array, 5); System.out.println(“数组中的元素“); for (int i : array) System.out.print(i + “ “); ,5.4.3 填充数组,fill(int a, int from,int to,int value) 该方法将指定的int值value分配给int型数组a指定范围中的每个元素。 填充的范围从索引from(包括)一直到索引to(不包括)。 如果from =to,则填充范围为空。,5.4.3 填充数组,【例】使用fill(int a, int from,int to,int value),int arr = new int 45,12,2,10 ; Arrays.fill(arr, 1, 2, 8); for (int i = 0; i arr.length; i+) System.out.println(“第“ + i + “个元素是:“ + arri); ,5.4.4 排序数组元素,java.util.Arrays类中的sort()方法可以用来按升序排序数组,该方法提供了多种重载形式。 以int类型数组作为参数的sort()方法: public static void sort(int a) a:需要排序的数组。,5.4.4 排序数组元素,【例5-5】 使用sort()方法将降序排列的数组按升序排列,然后输出赋值结果。,int array = 5, 4, 3, 2, 1 ; for (int i : array) System.out.print(i + “ “); System.out.println(); Arrays.sort(array); for (int i : array) System.out.print(i + “ “); ,5.4.5 查找数组元素,java.util.Arrays类中的binarySearch()方法可以用来在数组中查找指定元素,该方法提供了多种重载形式。 以int类型数组为例: public static int binarySearch(int a, int key) 查找成功,则返回搜索值的索引; 否则返回-1。,5.4.5 查找数组元素,【例5-6】使用sort()方法将降序排列的数组按升序排列,然后输出赋值结果。,int array = 5, 4, 3, 2, 1 ; System.out.print(“数组中的元素:“); for (int i : array) System.out.print(i + “ “); System.out.println(); Arrays.sort(array); int index = Arrays.binarySearch(array, 0); System.out.println(“元素0的索引值:“ + index);,5.4.5 查找数组元素,在指定的范围之内,检索某一元素,binarySearch(Object a,int fromIndex , int toIndex,Object key) a:要进行检索的数组。 fromIndex:指定范围的开始处索引。包含 toIndex:指定范围的结束处索引。不包含 key:要搜索的元素。,5.4.5 查找数组元素,在指定的范围之内,检索某一元素,String str = new String“ab“,“cd“,“ef“,“yz“; Arrays.sort(str); int index = Arrays.binarySearch(str,0,2,“cd“); System.out.println (“索引位置是:“+index);,数组的其它操作,克隆 int array2=array1.clone(); 判等 Arrays.equals(array1,array2); 返回指定数组内容的字符串 Arrays.toString(); 将数组内容放在 中,用“,”隔开。,冒泡排序,int array = 31, 21, 79, 3, 39 ; for (int i=0;iarrayj+1) int temp=arrayj; arrayj=arrayj+1; arrayj+1=temp; System.out.println(Arrays.toString(array); ,知识点提炼,数组是具有相同数据类型的一组数据的集合。 可以使用“数组元素类型 数组名字 ;”语法来创建一维数组,也可以在创建数组的同时对数组进行初始化。 可以使用“数组元素类型 数组名字 ;”语法来创建二维数组,也可以在创建数组的同时对数组进行初始化。 可以使用for循环和foreach循环来遍历数组。,知识点提炼,使用Arrays类中的copyOf()方法可以用来复制数组。 使用Arrays类中的fill()方法可以用来填充数组 使用Arrays类中的sort()方法可以用来排序数组元素。 使用Arrays类中的binarySearch()方法可以用来查找数组元素。,习题,1. 编程求一个整数数组的最大值 、最小值、平均值,以及大于平均值的元素个数,并输出结果。 2. 使用一维数组实现降序排序。 3. 已知一个含有10个数值的整数序列,编程将这个序列中所有奇数交换到前面,偶数交换到后面,并输出处理后的结果。,

    注意事项

    本文(第5章数组ppt课件.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开