好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java程序设计-4-数组.ppt

27页
  • 卖家[上传人]:宝路
  • 文档编号:49966488
  • 上传时间:2018-08-05
  • 文档格式:PPT
  • 文档大小:361.28KB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第四章 数组1学习目标• 理解数组的作用 • 掌握数组的声明和初始化特点 • 能够通过下标访问数组中的单个元素 • 如何利用JDK提供的数组操作方法 • 理解程序接收参数的过程,灵活运用main的参 数实现和程序交互 • 掌握多维数组的声明和应用234.1 数组 • 数组的作用在于提供了一种用来处理一组同类型 数据的存储和访问机制,因为在实际编程中,你 无法为每一个这样的数据声明一个变量 • 在Java语言中,数组元素可以是基本类型,也可 是对象实际上,Java认为数组本身也是一个对 象 44.1.1 数组的声明• 传统方式 uint[] score; uchar s ; uPoint p ,q[]; // Point是一个类类型, 此处声明了两个数组 • 现代方式 uchar  s; uPoint  p, q; 54.1.2 创建数组• 数组声明后并不是就可以直接使用了,要想使用必须 要实际创建数组,为它分配实际的存储空间,然后才 能存储元素 us = new char 20; up = new Point 100; • 也可在运行时,用变量表示数组的大小 uint[] a; uint len=10; ua=new int[len];• 注意:数组的大小一旦指定,就不可更改。

      64.1.3 初始化数组• 初始化解决了当数组空间被分配时,如何填充空间的问 题,而且预防了没有赋值就访问数组元素导致意外的情 况 • 1.当创建一个数组时,每个元素都将被默认初始化 u在上述char数组s的例子中,每个值都被初始化为0 (\u0000-null)字符; u数值类型的数组元素默认值为0 uboolean类型的数组元素默认值为false u对象类型的数组元素默认值为null u在数组p的例子中, 每个值都被初始化为null,表明它还未引用一 个Point对象在经过赋值 p0 = new Point()之后,数组的第一 个元素引用为实际Point对象 7• 2. Java编程语言允许使用下列形式快速创建数组,并完 成初始化任务: uString names[] =  u “Georgianna”, u “Jen”, u “Simon” u; • 其结果与下列代码等同: uString names[] ; unames = new String 3; unames 0 = “Georgianna”; unames 1 = “Jen”; unames 2 = “Simon”;84.1.4 访问数组public class ArrayAccessDemo {public static void main(String[] args) {int[] a={1,3,7,2,6,5};for(int i=0;i

      访问数组元素可以通过下标进行,如a[5]或 者a[i]. u2.一个数组中元素的数量被作为具有length属性 的部分而被数组对象存储; 这个值被用来检查所 有运行时访问的界限如果发生了一个越出界限 的访问,那么运行时的报错(异常)也就出现了 .104.1.4 访问数组-cont.• 存储元素到数组 uint[] a=new int[10]; ua[0]=10; ua[5]=2; ua[7]=8;11小结:•数组就是一个具有固定长度的包容多个相同类型对象 的数据结构它的元素类型甚至可以是数组 •数组的声明、创建和初始化可以分别完成,也可以一 次完成 •用来指示单个数组元素的下标必须总是从0开始 •数组一旦创建后,其大小不可调整 •可以用数组对象的length属性来获得该数组可以容纳 的元素个数 •可以通过下标(整数数值或整型变量)来引用数组内 的指定位置的元素,下标不能超出数组元素个数 •可使用相同的引用变量来引用一个全新的数组12课堂练习• 写出下面程序的运行结果class Happy {public static void main(String args[]) {int index=1;int a[] =new int[3];int bas =a[index];int baz =bas + indexSystem.out.println( a[baz] );} }13课堂练习(cont.)• 判断正确 u数组中的每个元素都是同样的类型 u数组的大小在声明之后就是固定的了 u数组的大小在创建后确定 u数组的元素必须是基本类型的14课堂练习(cont.)• 下面哪一个语句是有效的数组声明? uint i= new int(30); udouble d[] = new double[30]; uPoint[] p= new Point(130); uint i[] =(3,4,5,7); uchar[] c = new char(); ufloat[] f={1.0f,1.5f,4.6f}; udouble d[] = new float[30];15• 说出下面数组第3个元素的值 uint[] a = {1,3,6,7,8}; uboolean[] b = new boolean[10]; ufloat[] f={1.4f,5.6f,7.0f,2.5f,3.6f}; udouble[] d=new double[10]; ulong[] l;4.1.5使用增强型循环访问数组元素16for(目标数组元素的类型 变量名:目标数组名)int[] score = new int[5]; …… for (int x : score) {System.out.print(x+“,“); }4.2 main方法中的参数• 命令行的参数 umain方法声明中的参数类型是一个字符串数组 u运行时,存放接收的命令行参数 uJava程序将接收的第一个参数存放在下标为0 的位置,第二个参数存放在下标为1的位置, 其它的以此类推。

      17//程序4-2:运行时参数的应用 public class CommandParameters { public static void main(String[] args) {for(int i=0;i

      例如: new int  4是非法的,因 为这样的声明,编译器无法预先为之分配空间 •4. 多维数组的初始化 u 类似一维数组的初始化,多维数组的初始化即可 以在声明时直接初始化,也可以在创建时初始化 下面的例子演示了在声明时直接对数组进行初 始化: u int [][] factors = {{2}, {3}, {2, 4}, {5}, {2, 3, 6}, {7}}; 21课堂练习• 声明并创建一个如下数组 u包含3行,每行分别包含不同数目元素,元素 数依次为 5,4,6 • 编写一个程序,逐个输出该数组的每个元素的 默认初始值224.4 操作数组-复制、排序和查找•复制:在数组内查找一个具体的值,或者将一 个数组复制到另一个数组等 u System类提供的方法-arraycopy(),程序 •排序和查找-Arrays类提供的主要方法 u sort(.)升序排列 u binarySearch(.)使用折半搜索算法来搜索指 定类型的有序数组 u fill(.)用指定类型的值填充同类型的数组 u 程序23public class ArrayCopy { public static void main(String[] args) {// 原始数组int myArray[] = { 1, 2, 3, 4, 5, 6 }; // 一个更大的数组 int hold[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; /* 复制myArray数组的所有内容到hold数组,* 放在hold数组下标0开始的位置 */ System.arraycopy(myArray, 0, hold, 0, myArray.length); } } 24import java.util.Arrays; public class ArrayDemo { public static void main(String[] args) { int[] a={10,7,9,2,4,5,1,3,6,8}; Arrays.sort(a); //对数组a升序排列 for(int element : a){ System.out.println(element); }int loc=Arrays.binarySearch(a,5);//查找元素5System.out.println(“数值5在下标“+loc+“的位置“); } }25课堂练习•声明一个整型数组,其初始值是:1,4,56,8,9; •声明一个双精度类型的数组,其初始值是:1.0,10.5 ,12,7.2,20.4 •给出如下的声明 u float[] f = {1,2,3,4,5}; u 请问数组的长度,以及有效索引范围各是多少? u 请问索引为3的位置存放的元素值是多少? •声明一个字符型数组,包含20个元素,并给其前2个元 素赋值字符:a,b •声明一个字符串型数组,包含10个元素,并给其前2个 元素赋值字符串:abc,bcd •声明并创建一个二维整型数组。

      包含3行,每行分别包 含不同数目元素,元素数依次为 5,4,6public class ArrayTest { public static void main(String[] args) { int i, j; int a[] = { 2, 1, 4, 8, 9, 5, 3 }; for (i = 0; i < a.length - 1; i++) { int k = i;for (j = i; j < a.length; j++){if (a[j] < a[k]){k = j;}} int temp = a[i]; a[i] = a[k]; a[k] = temp; } for (i = 0; i < a.length; i++){ System.out.print(a[i] + “ “);} System.out.println(); }} //分析程序执行过程•按照要求运行下面的程序,回答问题 u 请按照下面的运行命令。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.