




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计第七章课后习题答案1.数组的声明与数组元素的创建有什么关系?答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫”。2.Vector类的对象与数组有什么关系?什么时候适合使用数组,什么时候适合使用Vector?答:vector是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且类型相同的对象;对于存储固定类型相同的对象使用数组,对于存储不同类型或者动态调整数组大小的情况使用Vector。3.与顺序查找相比,二分查找有什么优势?使用二分查找的条件?答:对于大数据量中进行查找时二分查找比顺序查找效率高得多;条件是已排序的数组。4.试举出三种常见的排序算法,并简单说明其排序思路。答:选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再重复地从未排序子序列中选取一个最小元素,把它加到已经排序的序列中,作为已排序子序列的最后一个元素,直到把未排序列中的元素处理完为止。插入排序:是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处,直到将全部数据都插入为止。二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。5.声明一个类People,成员变量有姓名、出生日期、性别、身高、体重等;生成10个People类对象,并放在一个以为数组中,编写方法按身高进行排序。/People类public class Peopleprivate String name;private String birthdaydate;private String sex;private double height;private double weight;public People()/默认构造函数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.height=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 void 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性别:+sex+n身高:+height+n体重:+weight;/test7_5类public class test7_5 /* * param args */public static void main(String args) / TODO Auto-generated method stubPeople 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(乔丹,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(按身高从小到大排序后的结果如下:);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 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_6public class 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_7import java.util.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;/ 记录每行最大的数的列标 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 = Array0j; 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() /构造一个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() /判断一个矩阵是否为对称矩阵Public 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;Matrix(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 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 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) & (arrayij != 0) flag = false;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.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GSK2636771-Standard-生命科学试剂-MCE
- 2025航天科工天隼实验室招聘4人模拟试卷附答案详解(黄金题型)
- 2025年河南省上蔡第一高级中学招聘教师30人模拟试卷及答案详解(网校专用)
- 2025年户外机柜温控节能项目合作计划书
- 安全培训效果点评课件
- 企业信誉与发展规划承诺函9篇
- 美食电商美食节促销计划
- 2025年甘肃省兰州眼科医院(兰州市第一人民医院眼科)招聘考前自测高频考点模拟试题参考答案详解
- 小学交通安全培训简报课件
- 2025届春季中核集团人才计划招聘模拟试卷附答案详解(突破训练)
- 实施项目经理岗位的工作职责描述
- 医院物业服务投标方案
- 中频操作评分标准
- 国家免疫规划疫苗儿童免疫程序说明-培训课件
- 生活中的理财原理知到章节答案智慧树2023年暨南大学
- GB/T 22588-2008闪光法测量热扩散系数或导热系数
- GB/T 22237-2008表面活性剂表面张力的测定
- GB/T 13298-1991金属显微组织检验方法
- 《绿色建筑概论》整套教学课件
- 建筑设计防火规范2001修订版
- 电工基础培训教材课件
评论
0/150
提交评论