Java程序设计:5 数组与字符串.part3

上传人:汽*** 文档编号:570040781 上传时间:2024-08-01 格式:PPT 页数:19 大小:867.50KB
返回 下载 相关 举报
Java程序设计:5 数组与字符串.part3_第1页
第1页 / 共19页
Java程序设计:5 数组与字符串.part3_第2页
第2页 / 共19页
Java程序设计:5 数组与字符串.part3_第3页
第3页 / 共19页
Java程序设计:5 数组与字符串.part3_第4页
第4页 / 共19页
Java程序设计:5 数组与字符串.part3_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java程序设计:5 数组与字符串.part3》由会员分享,可在线阅读,更多相关《Java程序设计:5 数组与字符串.part3(19页珍藏版)》请在金锄头文库上搜索。

1、Java 程序程序设计华南农业大学华南农业大学 教育技术教育技术 第第第第5 5章章章章 数组与字符串数组与字符串数组与字符串数组与字符串Part 1Part 1本章知识要点本章知识要点u数组数组、n数组名数组名(数组引用数组引用)n数组元素数组元素n数组长度数组长度a.lengthn常用操作算法实现常用操作算法实现n冒泡排序冒泡排序/选择排序选择排序n二分查找二分查找Java程序程序设计设计2u数组类数组类Arrayn排序排序Sortn查找查找binarySearchn内容相等内容相等equals5.2.1 二维数组的定义与创建二维数组的定义与创建uJava语言规定二维数组变量的声明语法如下

2、:语言规定二维数组变量的声明语法如下: 数组元素类型数组元素类型 数组型变量名数组型变量名; ; 或者或者 数组元素类型数组元素类型 数组型变量名数组型变量名 ; ; 或者或者 数组元素类型数组元素类型 数组型变量名数组型变量名 ; ; “数组元素类型数组元素类型”为二维数组的元素类型,为二维数组的元素类型, “数组型变量名数组型变量名”为二维数组型变量名称。为二维数组型变量名称。 C C C C语言兼容语言兼容语言兼容语言兼容X X Worst One int iArray; float fArray ; double dArray ; Best OnePage.65int intArray

3、 = new int105;等价于:等价于:intArray = new int10;for (int i = 0; i 10; i+) intArrayi = new int5;二维数组的定义且创建二维数组的定义且创建Page.652. 2. 二维数组的初始化二维数组的初始化 int intArray= 1,2,3,4, 5,6,7,8, 9, 10, 11,12 ; 执行效果:首先创建二维数组,然后,将第执行效果:首先创建二维数组,然后,将第1个个括号中的括号中的4个数值分别赋给第个数值分别赋给第1行的行的4个元素;再个元素;再将第将第2个括号中的个括号中的4个数值分别赋给第个数值分别赋给

4、第2行的行的4个元个元素;最后将第素;最后将第3个括号中的个括号中的4个数值分别赋给第个数值分别赋给第3行的行的4个元素。初始化后的数组元素状态为:个元素。初始化后的数组元素状态为:Page.663. 3. 二维数组元素的访问二维数组元素的访问 创建二维数组之后,可以通过引用型的二维数组变量对数创建二维数组之后,可以通过引用型的二维数组变量对数组元素进行操作了。二维数组必须用两个下标惟一地确定组元素进行操作了。二维数组必须用两个下标惟一地确定元素,第一个下标为行下标,第二个下标为列下标,下标元素,第一个下标为行下标,第二个下标为列下标,下标的起始编号从的起始编号从0 0开始。开始。 int i

5、ntArray = new int54; 5.2.2 二维数组的长度二维数组的长度u二维数组是元素类型为一维数组的一维数组二维数组是元素类型为一维数组的一维数组 int a = new int34每行元素个数不同的二维数组的创建每行元素个数不同的二维数组的创建float floatArray = new float5 ;for (int i = 0; i 5; i+) floatArrayi = new floati+1; Page.675.3.2 数组的排序数组的排序u排序是计算机程序设计最常用的算法之一。例如,排序是计算机程序设计最常用的算法之一。例如,对某次考试的成绩从高到低进行排序;将

6、候选人对某次考试的成绩从高到低进行排序;将候选人名单按姓名进行排序等。名单按姓名进行排序等。 Ref:课程网站之:课程网站之“第第5章章 算法基础算法基础”1. 冒泡排序冒泡排序u冒泡排序是一种比较简单的排序算法,基本思路是:冒泡排序是一种比较简单的排序算法,基本思路是:对对n个数进行升序排序,需要进行个数进行升序排序,需要进行n-1趟比较和交换。趟比较和交换。u例例5-3:使用冒泡排序对:使用冒泡排序对10个整数进行升序排序。个整数进行升序排序。2. 选择排序选择排序u选择排序的基本思想:对选择排序的基本思想:对n个数进行升序选择排序个数进行升序选择排序需要需要n-1趟。趟。u例例5-4:使

7、用选择排序对:使用选择排序对10个整数进行升序排序。个整数进行升序排序。 5.3.3 数组的查找数组的查找u查找是指在数组寻找特定元素的过程。例如在一份查找是指在数组寻找特定元素的过程。例如在一份名单中查找有无某个人的名字,在商品列表中查找名单中查找有无某个人的名字,在商品列表中查找有无某件商品等。较简单的查找算法有两种:线性有无某件商品等。较简单的查找算法有两种:线性查找和二分查找。查找和二分查找。 5.3.3 数组的查找数组的查找u使用二分查找的前提条件是数组元素必须已经排序。使用二分查找的前提条件是数组元素必须已经排序。下面讨论假设数组已经按升序排序,要查找的数据称下面讨论假设数组已经按

8、升序排序,要查找的数据称为关键字。二分查找的基本思想:将关键字与数组的为关键字。二分查找的基本思想:将关键字与数组的中间元素进行比较,则可能有以下三种情况:中间元素进行比较,则可能有以下三种情况:n关键字比中间元素小,则下面只需在前一半数组元素中查关键字比中间元素小,则下面只需在前一半数组元素中查找。找。n关键字与中间元素相等,则查找成功,输出结果。关键字与中间元素相等,则查找成功,输出结果。n关键字比中间元素大,则下面只需在后一半数组元素中查关键字比中间元素大,则下面只需在后一半数组元素中查找。找。u例例5-5:对已经排序的数组进行二分查找。:对已经排序的数组进行二分查找。5.3.4 使用使

9、用Arrays类对数组进行操作类对数组进行操作u为了方便对数组进行各种常见的操作,为了方便对数组进行各种常见的操作,JDK预定预定义了义了java.util.Arrays类,该类提供了很多用类,该类提供了很多用于对数组进行操作的方法,这些方法适用于所有于对数组进行操作的方法,这些方法适用于所有元素为基本数据类型的数组。元素为基本数据类型的数组。 u1. 数组排序数组排序 nArray.sort(数组变量名称数组变量名称)u2. 数组查找数组查找nArray.binarySearch(数组变量名称数组变量名称, 需要从数组需要从数组中查找的值中查找的值)u3. 判断数组内容相等判断数组内容相等

10、nArrays.equals(数组数组1名称,数组名称,数组2名称名称)5.4.2 使用使用StringBuffer/StringBuilder类处类处理字符串理字符串uStringBuffer/StringBuilder类提供对字符类提供对字符串的另一种处理方式,它们比串的另一种处理方式,它们比String类更加灵活,类更加灵活,可以在字符串上直接进行添加、插入和替换等操可以在字符串上直接进行添加、插入和替换等操作。作。u从从JDK5开始这两个类在使用方式是相同的,两开始这两个类在使用方式是相同的,两者区别是:如果编写多线程程序,使用者区别是:如果编写多线程程序,使用StringBuffer

11、类;而编写单线程应用程序时,类;而编写单线程应用程序时,StringBuilder类的效率更高。类的效率更高。1. 创建创建StringBuffer对象对象uStringBuffer描述的字符串缓冲区有一个重要描述的字符串缓冲区有一个重要的特性,称为的特性,称为“容量容量”,是指该缓冲区能够容纳,是指该缓冲区能够容纳字符的个数。字符的个数。 u创建创建StringBuffer对象的方式:对象的方式:nStringBuffer buffer = new StringBuffer(); 2. 修改缓冲区中的字符串修改缓冲区中的字符串u对字符串缓冲区进行的修改操作包括:在缓冲区对字符串缓冲区进行的修

12、改操作包括:在缓冲区末尾追加新内容,在缓冲区的指定位置插入新内末尾追加新内容,在缓冲区的指定位置插入新内容,也可以删除和替换缓冲区的字符。在对缓冲容,也可以删除和替换缓冲区的字符。在对缓冲区进行追加和插入等操作时,如果缓冲区容量不区进行追加和插入等操作时,如果缓冲区容量不够了,缓冲区会自动扩容。够了,缓冲区会自动扩容。 u在缓冲区不可收拾追加新内容使用在缓冲区不可收拾追加新内容使用append方法,方法,该方法可以把各种基本数据类型、字符串等数据该方法可以把各种基本数据类型、字符串等数据追加到缓冲区末尾。追加到缓冲区末尾。 u使用使用insert方法可以把各种基本数据类型、字符方法可以把各种基

13、本数据类型、字符串等数据插入在字符串缓冲区的指定位置。串等数据插入在字符串缓冲区的指定位置。 3. 字符串缓冲区的其他操作字符串缓冲区的其他操作u定义字符串缓冲区如下:定义字符串缓冲区如下:StringBuffer buffer = new StringBuffer(welcome);5.4.3 字符串应用实例字符串应用实例u例例5-6:从键盘输入一个字符串,计算其中的全部:从键盘输入一个字符串,计算其中的全部数字字符表示的数值之和。例如输入字符串数字字符表示的数值之和。例如输入字符串1a2b3c,则计算结果为,则计算结果为1+2+3=6。u读程序,回答问题读程序,回答问题n1:字符串输入语句是什么?:字符串输入语句是什么?n2:字符串中有多少个字符?:字符串中有多少个字符?n3:从字符串中得到第一个字符的语句是什么?:从字符串中得到第一个字符的语句是什么?n4:判断某个字符是否是数值的语句有哪些?:判断某个字符是否是数值的语句有哪些?n5:将一个字符转变为一个数值的语句是什么?:将一个字符转变为一个数值的语句是什么?Page.78

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号