版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 语言程序设计 第七章课后习题答案 1.数组的声明与数组元素的创建有什么关系? 答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫” 。 2.Vector 类的对象与数组有什么关系?什么时候适合使用数组,什么时候适合使用 Vector? 答:vector 是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且 类型相同的对象; 对于存储固定类型相同的对象使用数组, 对于存储不同类型或者动态调整 数组大小的情况使用 Vector。 3.与顺序查找相比,二分查找有什么优势?使用二分查找的条件? 答:对于大数据量中进行查找时二分查找比顺序查找效率高得
2、多;条件是已排序的数组。 4.试举出三种常见的排序算法,并简单说明其排序思路。 答:选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再 重复地从未排序子序列中选取一个最小元素, 把它加到已经排序的序列中, 作为已排序子序 列的最后一个元素,直到把未排序列中的元素处理完为止。 插入排序: 是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处, 直到 将全部数据都插入为止。 二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; 否则利用中间位置记录将表分成前、 后两个子表, 如果中间位置记录的关键字大于查找关键 字,则进一步查找前一子表,
3、否则进一步查找后一子表。重复以上过程,直到找到满足条件 的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 5.声明一个类 People,成员变量有姓名、出生日期、性别、身高、体重等;生成 10 个 People 类对象,并放在一个以为数组中,编写方法按身高进行排序。 /People 类 public class People private String name; private String birthdaydate; private String sex; private double height; private double weight; public People()
4、/默认构造函数 public People(People p) =; this.birthdaydate=p.birthdaydate; this.sex=p.sex; this.height=p.height; this.weight=p.weight; public People(String name,String birthdaydate,String sex,double height,double weight) =name; this.birthdaydate=birthdaydate; this.sex=sex; this.hei
5、ght=height; this.weight=weight; public String getName() return name; public void setName(String name) = name; public String getBirthdaydate() return birthdaydate; public void setBirthdaydate(String birthdaydate) this.birthdaydate = birthdaydate; public String getSex() return sex; public vo
6、id setSex(String sex) this.sex = sex; public double getHeight() return height; public void setHeight(double height) this.height = height; public double getWeight() return weight; public void setWeight(double weight) this.weight = weight; public String toString() return 姓名:+name+n出生年月:+birthdaydate+n
7、性别:+sex+n 身高:+height+n体重:+weight; /test7_5 类 public class test7_5 /* * param args */ public static void main(String args) / TODO Auto-generated method stub People people= new People(林楚金,1989年8月13日,男,182,63.5), new People(诸葛亮,181年7月23日,男,184,76.6), new People(迈克杰克逊,1958年8月29日,男,180,60), new People(乔丹
8、,1963年2月17日,男,198,98.1), new People(拿破仑,1769年8月15日,男,159.5,63), new People(苍井空,1983年11月11日,女,155,45),; People temp=new People(); for(int i=0;ipeople.length-1;i+) for(int j=i+1;jpeople.length;j+) if(peoplei.getHeight()peoplej.getHeight() temp=peoplej; peoplej=peoplei; peoplei=temp; System.out.println
9、(按身高从小到大排序后的结果如下:); for(int i=0;ipeople.length;i+) System.out.println(peoplei+n); 运行结果: 6.声明一个类,此类使用私有的 ArrayList 来存储对象。使用一个 Class 类的引用得到第一个 对象的类型之后,只允许用户插入这种类型的对象。 /Fuck 类 import java.util.ArrayList; public class Fuck private ArrayList man=new ArrayList(); private Class classType=null; public void
10、add(Object f) if(man.size()=0) classType=f.getClass(); if(classType.equals(f.getClass() man.add(f); System.out.println(插入成功.); else System.out.println(只允许插入+getClassType()+类的对象.); public ArrayList getMan() return man; public Class getClassType() return classType; public Fuck() /test7_6 public class
11、test7_6 public static void main(String args) Fuck fuckman=new Fuck(); String s=new String(林楚金); fuckman.add(s); fuckman.add(10);/测试插入插入整数 fuckman.add(f);/测试插入插入字符 fuckman.add(希特勒); System.out.println(fuckman.getMan(); 运行结果: 7.找出一个二维数组的鞍点,即该位置上的元素在所在行上最大,在所在列上最小。 (也可 能没有鞍点) /test7_7 import java.util.
12、Scanner; public class test7_7 public static void main(String args) int row, series, max; boolean T=false; Scanner cin = new Scanner(System.in); System.out.println(请输入数组的行数); row = cin.nextInt(); System.out.println(请输入数组的列数); series = cin.nextInt(); int Array = new introwseries; int R = new introw;/
13、记录每行最大的数的列标 int S = new intseries;/ 记录每列最小的数的行标 System.out.println(请输入数组内容); for (int i = 0; i Array.length; i+) for (int j = 0; j Arrayi.length; j+) Arrayij = cin.nextInt(); if(j=series-1) max = Arrayi0; for (int z = 1; z max) max = Arrayiz; Ri = z; for (int j = 0; j Array0.length; j+) max = Array0
14、j; for (int z = 1; z row ; z+) if (Arrayzj max) max = Arrayzj; Sj = z; for(int i=0;iArray.length;i+) if(SRi=i) System.out.println(鞍点:+Array+i+Ri+ :+ArrayiRi+n); T=true; if(T=false) System.out.println(没有鞍点); 运行结果: 8. 声明一个矩阵类Matrix,其成员变量是一个二维数组,数组元素类型为int,设计下面的 方法, 并声明测试类对这些方法进行测试。 (1)构造方法。 Matrix()/
15、构造一个1010个元素的矩阵,没有数据Matrix(int n)/构造一个nn 个元素的矩阵, 数据随机产生 Matrix(int n,int m)/构造一个nm个元素的矩阵, 数据随机产生 Matrix(int table)/以一个整型的二维数组构造一个矩阵 (2) 实例方法。public void output()/输出Matrix类中数组的元素值public Matrix transpose/求一个矩阵的转置矩阵 Public Boolean isTriangular /判断一个矩阵是否为上三角矩阵 Public Boolean isSymmetry() /判断一个矩阵是否为对称矩阵 P
16、ublic void add(Matrix b)/将矩阵b与接受着对象相加,结果放在接受着对象中 用key-value对来填充一个HashMap,并按hash code排列输出。 编写一个方法,在方法中使用Iterator类遍历Collection,并输出此集合类中每个对象的 hashCode()值。用对象填充不同类型的Collection类对象,并将此方法应用于每一种 Collection类对象。 /Matrix类 public class Matrix int array; Matrix() / 构造一个10X10个元素的矩阵,没有数据 array = new int1010; Matri
17、x(int n) / /构造一个nn个元素的矩阵,数据随机产生 array = new intnn; for (int i = 0; i n; i+) for (int j = 0; j n; j+) arrayij = (int) (Math.random() * 10); Matrix(int n, int m) / 构造一个n*m个元素的矩阵,数据随机产生 array = new intnm; for (int i = 0; i n; i+) for (int j = 0; j m; j+) arrayij = (int) (Math.random() * 10); Matrix(int
18、 table) / 以一个整型的二维数组构造一个矩阵 array = table; public void output() / 输出Matrix类中数组的元素值 for (int i = 0; i array.length; i+) for (int j = 0; j array0.length; j+) System.out.print(arrayij + ); System.out.println(); public void transpose() / 输出一个矩阵的转置矩阵 for (int i = 0; i array0.length; i+) for (int j = 0; j
19、array.length; j+) System.out.print(arrayji + ); System.out.println(); public boolean isTriangular() / 判断一个矩阵是否为上三角矩阵 boolean flag = true; for (int i = 0; i array.length; i+) for (int j = 0; j j) return flag; public boolean isSymmetry() / 判断一个矩阵是否为对称矩阵 boolean Symmetry = true; for (int i = 0; i array.length; i+) for (int j = i; j array0.length; j+) if (arrayij = arrayji) Symmetry = false; return Symmetry; public void add(Matrix b) / 将矩阵b与接受着对象相加,结果放在接受着对 象中 for (int i = 0; i array.length; i+) for (int j = 0; j array0.length; j+) this.arrayij = arrayij + b.arrayi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务行业顾问总结
- 交通运输行业月度个人工作计划
- 银行行业贷款业务培训感悟
- 电影行业助理工作总结
- 中小学教师继续教育研修总结四篇
- 2024年物业使用权让与担保服务合同范本6篇
- 2024年版消防工程劳务分包细节合同版B版
- 2024年标准版施工协议法规电子版下载版B版
- 2025年山东济宁鱼台县公立医院招聘备案制工作人员60人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁学院招聘工作人员54人(博士研究生)历年管理单位笔试遴选500模拟题附带答案详解
- 医药行业合规培训
- 2024年低压电工资格考试必考题库及答案(共400题)
- 【MOOC】公司金融-江西财经大学 中国大学慕课MOOC答案
- 世界卫生组织人类精液及精子-宫颈粘液相互作用实验室检验手册第五版
- 殡仪馆鲜花采购投标方案(技术方案)
- 安全生产工作年终总结
- 齐鲁名家 谈方论药智慧树知到期末考试答案2024年
- 南京工业大学桥梁工程课程设计
- 2024年华电甘肃大基地煤电分公司招聘笔试参考题库含答案解析
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 都匀毛尖茶产业发展研究毕业论文
评论
0/150
提交评论