版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 程序程序设计设计华南农业大学华南农业大学 教育技术教育技术 第第5章章 数组与字符串数组与字符串Part 1本章知识要点本章知识要点u数组数组、n数组名数组名(数组引用数组引用)n数组元素数组元素n数组长度数组长度a.lengthn常用操作算法实现常用操作算法实现n冒泡排序冒泡排序/选择排序选择排序n二分查找二分查找Java程序程序设计设计2u数组类数组类Arrayn排序排序Sortn查找查找binarySearchn内容相等内容相等equals5.2.1 二维数组的定义与创建二维数组的定义与创建uJava语言规定二维数组变量的声明语法如下:语言规定二维数组变量的声明语法如下: 数组
2、元素类型数组元素类型 数组型变量名数组型变量名; ; 或者或者 数组元素类型数组元素类型 数组型变量名数组型变量名 ; ; 或者或者 数组元素类型数组元素类型 数组型变量名数组型变量名 ; ; “数组元素类型数组元素类型”为二维数组的元素类型,为二维数组的元素类型, “数组型变量名数组型变量名”为二维数组型变量名称。为二维数组型变量名称。 X X Worst One int iArray; float fArray ; double dArray ; Best OnePage.65int intArray = new int105;等价于:等价于:intArray = new int10;fo
3、r (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个数值分别赋给第个数值分别赋给第2行的行的4个元个元素;最后将第素;最后将第3个括号中的个括号中的4个数值分别赋给第个数
4、值分别赋给第3行的行的4个元素。初始化后的数组元素状态为:个元素。初始化后的数组元素状态为:Page.663. 3. 二维数组元素的访问二维数组元素的访问 创建二维数组之后,可以通过引用型的二维数组变量对数创建二维数组之后,可以通过引用型的二维数组变量对数组元素进行操作了。二维数组必须用两个下标惟一地确定组元素进行操作了。二维数组必须用两个下标惟一地确定元素,第一个下标为行下标,第二个下标为列下标,下标元素,第一个下标为行下标,第二个下标为列下标,下标的起始编号从的起始编号从0 0开始。开始。 int intArray = new int54; 5.2.2 二维数组的长度二维数组的长度u二维数
5、组是元素类型为一维数组的一维数组二维数组是元素类型为一维数组的一维数组 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:使用选择排序对:使用选择排序对10个整数进行升序排序。个整数进行升序排序。 5.3.3 数组
7、的查找数组的查找u查找是指在数组寻找特定元素的过程。例如在一份查找是指在数组寻找特定元素的过程。例如在一份名单中查找有无某个人的名字,在商品列表中查找名单中查找有无某个人的名字,在商品列表中查找有无某件商品等。较简单的查找算法有两种:线性有无某件商品等。较简单的查找算法有两种:线性查找和二分查找。查找和二分查找。 5.3.3 数组的查找数组的查找u使用二分查找的前提条件是数组元素必须已经排序。使用二分查找的前提条件是数组元素必须已经排序。下面讨论假设数组已经按升序排序,要查找的数据下面讨论假设数组已经按升序排序,要查找的数据称为关键字。二分查找的基本思想:将关键字与数称为关键字。二分查找的基本
8、思想:将关键字与数组的中间元素进行比较,则可能有以下三种情况:组的中间元素进行比较,则可能有以下三种情况:n关键字比中间元素小,则下面只需在前一半数组元素中查关键字比中间元素小,则下面只需在前一半数组元素中查找。找。n关键字与中间元素相等,则查找成功,输出结果。关键字与中间元素相等,则查找成功,输出结果。n关键字比中间元素大,则下面只需在后一半数组元素中查关键字比中间元素大,则下面只需在后一半数组元素中查找。找。u例例5-5:对已经排序的数组进行二分查找。:对已经排序的数组进行二分查找。5.3.4 使用使用Arrays类对数组进行操作类对数组进行操作u为了方便对数组进行各种常见的操作,为了方便
9、对数组进行各种常见的操作,JDK预定预定义了义了java.util.Arrays类,该类提供了很多用类,该类提供了很多用于对数组进行操作的方法,这些方法适用于所有于对数组进行操作的方法,这些方法适用于所有元素为基本数据类型的数组。元素为基本数据类型的数组。 u1. 数组排序数组排序 nArray.sort(数组变量名称数组变量名称)u2. 数组查找数组查找nArray.binarySearch(数组变量名称数组变量名称, 需要从数组需要从数组中查找的值中查找的值)u3. 判断数组内容相等判断数组内容相等 nArrays.equals(数组数组1名称,数组名称,数组2名称名称)5.4.2 使用使
10、用StringBuffer/StringBuilder类处类处理字符串理字符串uStringBuffer/StringBuilder类提供对字符类提供对字符串的另一种处理方式,它们比串的另一种处理方式,它们比String类更加灵类更加灵活,可以在字符串上直接进行添加、插入和替换活,可以在字符串上直接进行添加、插入和替换等操作。等操作。u从从JDK5开始这两个类在使用方式是相同的,两开始这两个类在使用方式是相同的,两者区别是:如果编写多线程程序,使用者区别是:如果编写多线程程序,使用StringBuffer类;而编写单线程应用程序时,类;而编写单线程应用程序时,StringBuilder类的效率
11、更高。类的效率更高。1. 创建创建StringBuffer对象对象uStringBuffer描述的字符串缓冲区有一个重要描述的字符串缓冲区有一个重要的特性,称为的特性,称为“容量容量”,是指该缓冲区能够容纳,是指该缓冲区能够容纳字符的个数。字符的个数。 u创建创建StringBuffer对象的方式:对象的方式:nStringBuffer buffer = new StringBuffer(); 2. 修改缓冲区中的字符串修改缓冲区中的字符串u对字符串缓冲区进行的修改操作包括:在缓冲区对字符串缓冲区进行的修改操作包括:在缓冲区末尾追加新内容,在缓冲区的指定位置插入新内末尾追加新内容,在缓冲区的指
12、定位置插入新内容,也可以删除和替换缓冲区的字符。在对缓冲容,也可以删除和替换缓冲区的字符。在对缓冲区进行追加和插入等操作时,如果缓冲区容量不区进行追加和插入等操作时,如果缓冲区容量不够了,缓冲区会自动扩容。够了,缓冲区会自动扩容。 u在缓冲区不可收拾追加新内容使用在缓冲区不可收拾追加新内容使用append方法,方法,该方法可以把各种基本数据类型、字符串等数据该方法可以把各种基本数据类型、字符串等数据追加到缓冲区末尾。追加到缓冲区末尾。 u使用使用insert方法可以把各种基本数据类型、字符方法可以把各种基本数据类型、字符串等数据插入在字符串缓冲区的指定位置。串等数据插入在字符串缓冲区的指定位置。 3. 字符串缓冲区的其他操作字符串缓冲区的其他操作u定义字符串缓冲区如下:定义字符串缓冲区如下:StringBuffer buffer = new StringBuffer(welcome);5.4.3 字符串应用实例字符串应用实例u例例5-6:从键盘输入一个字符串,计算其中的全部:从键盘输入一个字符串,计算其中的全部数字字符表示的数值之和。例如输入字符串数字字符表示的数值之和。例如输入字符串1a2b3c,则计算结果为,则计算结果为1+2+3=6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于加强交通运输安全生产源头管控的指导意见
- 2025年广东省广州市南沙区中考物理一模试卷含答案
- 20250508塔吊专项施工方案(专家论证)投标文件(技术方案)
- 废旧电池仓储项目环评报告表
- 年产20万套智能电网采集设备生产项目环评报告表
- 武王伐纣测试题及答案
- 《暑假查漏巩固|高中化学有机化学全单元基础梳理完整教案》
- 餐饮业营收与服务绩效衡量表
- 建筑公司施工进度管理标准化方案
- 合作意向书正式签订确认函(7篇)范文
- 员工通勤交通安全培训课件
- 2024-2025学年广州市三校联考(广大附、铁一、广外)高一(上)期中英语试题及答案
- 旱改水农田管护协议书4篇
- (正式版)DB42∕T 2305-2024 《高品质住宅技术标准》
- 《老年人健康管理实务》老年保健与管理专业全套教学课件
- osahs讲解教学课件
- 特种设备安全风险分级管控与隐患排查治理体系建设指导手册
- DZ/T 0132-1994钻孔压水试验规程
- T/CNCA 038-2022车用甲醇汽油(M15)
- T- CWEA XX -2023 斜式轴流泵安装规程
- 幕墙安全管理制度
评论
0/150
提交评论