选择和简答题参考:https://blog.csdn.net/qq_34834846/article/details/81976921

三 编码题

1. 使用List和Map存放多个图书信息,遍历并输出。其中商品属性:编号,名称,单价,出版社;使用商品编号作为Map中的key。

2. 使用HashSet和TreeSet存储多个商品信息,遍历并输出;其中商品属性:编号,名称,单价,出版社;要求向其中添加多个相同的商品,验证集合中元素的唯一性。

提示:向HashSet中添加自定义类的对象信息,需要重写hashCode和equals( )。

向TreeSet中添加自定义类的对象信息,需要实现Comparable接口,指定比较 规则。

3. 实现List和Map数据的转换。具体要求如下:

功能1:定义方法public void listToMap( ){ }将List中Student元素封装到Map中

1) 使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息并加入List;

2) 遍历List,输出每个Student信息;

3) 将List中数据放入Map,使用Student的id属性作为key,使用Student对象信息作为value;

4) 遍历Map,输出每个Entry的key和value。

功能2:定义方法public void mapToList( ){ }将Map中Student映射信息封装到List

1) 创建实体类StudentEntry,可以存储Map中每个Entry的信息;

2) 使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息,并使用Student的id属性作为key,存入Map;

3) 创建List对象,每个元素类型是StudentEntry;

4) 将Map中每个Entry信息放入List对象。

功能3:说明Comparable接口的作用,并通过分数来对学生进行排序。

个人所写,仅供参考,如有错误或可以优化的地方请各位留言指正。谢谢!

1.Test类:

package cn.sxt.homework;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;public class Test {public static Map<Integer,Student> listToMap(List<Student> list){Map<Integer,Student> map = new HashMap<>();for (int i = 0; i < list.size(); i++) {Student student = list.get(i);map.put( student.getId() , student);}return map;}public static void main(String[] args) {Book book1 = new Book("1001", "挪威的森林", 25, "上海译文出版社");Book book2 = new Book("1003", "红楼梦", 50, "人民文学出版社");Book book3 = new Book("1002", "活着", 20, "作家出版社");Book book4 = new Book("1002", "西游记", 49, "人民文学出版社");//存储多个图书信息-使用List/Map      List<Book> books = new ArrayList<>();books.add(book1);books.add(book2);books.add(book3);books.add(book4);for (Iterator<Book> iterator = books.iterator(); iterator.hasNext();) {Book book =  iterator.next();System.out.println(book);}//使用HashSet添加自定义对象Book信息需要重写hashCode和equals( ),//保证equals为true的两个对象有相同的hashCode//这里当两本书的isbn相同则认为equals为trueSystem.out.println("##########################");Set<Book> bookSet = new HashSet<>();bookSet.add(book1);bookSet.add(book2);bookSet.add(book3);bookSet.add(book4);for (Book book : bookSet) {System.out.println(book);}//向TreeSet中添加自定义类的对象Book信息,Book中已重写hashCode和equals( )//还需要实现Comparable接口,指定比较规则。System.out.println("##########################");Set<Book> bookTreeSet = new TreeSet<>();bookTreeSet.add(book1);bookTreeSet.add(book2);bookTreeSet.add(book3);bookTreeSet.add(book4);for (Book book : bookTreeSet) {System.out.println(book);}System.out.println("##########################");//创建多个学生Student s1 = new Student(1,"张三",20,"女");Student s2 = new Student(2,"李四",22,"男");Student s3 = new Student(3,"王五",18,"男");Student s4 = new Student(3,"赵六",17,"女");List<Student> ss =new ArrayList<>();ss.add(s1);ss.add(s2);ss.add(s3);ss.add(s4);     for (Student student : ss) {System.out.println(student);}System.out.println("##########################");        Map<Integer,Student> sMap = listToMap(ss);Set<Entry<Integer,Student>> sSet = sMap.entrySet();for (Entry<Integer,Student> student : sSet) {System.out.println(student);}//TODO:mapToList 有点重复//通过默认比较器进行排序-通过年龄大小System.out.println("##########################");Collections.sort(ss);for (Student s : ss) {System.out.println(s);}}}

2.图书类

package cn.sxt.homework;public class Book implements Comparable<Book> {private String isbn;private String name;private double price;private String press;public Book() {super();}public Book(String isbn, String name, double price, String press) {super();this.isbn = isbn;this.name = name;this.price = price;this.press = press;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}@Overridepublic String toString() {      return "编号:"+isbn+"\t名称:"+name+"\t单价:"+price+"\t出版社:"+press;}@Overridepublic int compareTo(Book o) {return this.isbn.compareTo(o.getIsbn());}@Overridepublic int hashCode() {      return this.isbn.hashCode();}@Overridepublic boolean equals(Object obj) {if(this == obj)return true;if(obj instanceof Book){Book anotherBook = (Book)obj;if(this.isbn.equals(anotherBook.getIsbn()))return true;}return false;}}

3. 学生类:

没有 score分数属性,直接使用 age年龄属性进行比较

package cn.sxt.homework;public class Student implements Comparable<Student>{private int id;private String name;private int age;private String sex;@Overridepublic int compareTo(Student o) {//默认比较器,使用年龄熟属性        return this.age-o.getAge();}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";}public Student() {super();}public Student(int id, String name, int age, String sex) {super();this.id = id;this.name = name;this.age = age;this.sex = sex;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}

尚学堂java 个人参考答案 第九章 主要是编码题相关推荐

  1. 尚学堂java 参考答案 第九章

    一.选择题 1.AC 解析:A.注意题目是Collections不是 Collection,前者是一个until下的类,后者才是接口 C.Set中的数据是无序且不能重复的 2.A 解析:将发生数组越界 ...

  2. 尚学堂java实战第四章课后习题

    尚学堂java实战第四章课后习题 文章中的题目答案仅供参考 选择题答案: 1.B 解析:一个java类必然存在构造器,即使没有定义构造器,也会存在一个默认的无参构造器. 2.D 3.AC 解析: A( ...

  3. 尚学堂Java第五章所有题目

    尚学堂Java第五章所有题目 一.选择题 二.简答题 三.编码题 编码题一 编码题二 编码题三 这次的作业有一部分理解的可能不是很透彻,可能不是最优的方法,希望师傅们能给刚入门的我一点建议! 一.选择 ...

  4. 尚学堂Java第四章作业编码题+个人想法

    尚学堂Java第四章作业编码题+个人想法 编码题一: 编码题二: 编码题三: 终于到我想说的地方了 刚开始学习Java,刚开始学会做笔记,觉悟的可能比较晚,但没关系,我会努力的! 由于每次做作业都难理 ...

  5. 尚学堂 JAVA第二章作业

    文章目录 尚学堂JAVA 第二章作业 尚学堂JAVA 第二章作业 第二章比较简单写得很粗略 import java.util.Scanner; import java.math.*;/*** 作业2* ...

  6. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  7. 2021年春季学期-信号与系统-第三次作业参考答案-第九道题

    本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第九道题 9. 已知因果线性时不变系统的输入输出之间的微分方程为: ddty(t)+5y(t)=∫−∞∞x(τ)f(t−τ ...

  8. 2021年春季学期-信号与系统-第二次作业参考答案-第九小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第九题 9. 已知三个系统的输入输出关系分别为: 把上述三个子系统进行如下的级联,求系统的输入输出关系,它是线性.时不变系统 ...

  9. 尚学堂Java培训:如何读书?

    尚学堂Java培训:如何读书? 转载请注明出处:[http://www.bjsxt.com/books/how_to_read_book.html] 对于没有基础的同学来说,我们强烈推荐使用视频入门, ...

最新文章

  1. 用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())
  2. JVM可创建的最大线程数
  3. matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
  4. 使窗体拥有透明效果的API
  5. 数据结构例程——哈希表及其运算的实现
  6. 访问iis元数据库失败怎么解决
  7. 阿里云成立技术脱贫联盟,要用技术助力脱贫
  8. adguard自定义_搭建AdGuard Home自定义dns,实现全设备拦截广告的目的
  9. 西安市行政区划矢量图_行政区划图片下载_行政区划图矢量图素材
  10. 过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)
  11. 网络安全——D模块答题模式
  12. 工地人脸识别门禁考的出现对智慧工地提出解决方案
  13. 怎样防止服务器被攻击 常见的服务器攻击方式有哪些
  14. 弱水三千,该取几瓢饮?
  15. 苍蓝誓约服务器一直维护,《苍蓝誓约》11月26日09:30停服维护公告
  16. linuxprobe
  17. mes系统故障_MES系统解决了什么问题?
  18. 这是一个个人的“云图库”
  19. php验证email,PHP正则验证Email的方法
  20. 应用性能监控对DMS系统综合分析案例

热门文章

  1. 计算机上贴硬币图片,为什么商店的计算器要粘个硬币?原来如此!
  2. lrzsz传输超过4G文件需要拆分(使用split指令)
  3. 开花算法_数据科学即将开花,但其根源已经存在了很长时间
  4. 光纤收发器的原理及应用_光纤收发器的分类与工作原理
  5. centos7同网段下文件互传
  6. 2036改革春风吹满地
  7. 2021.8.16-8.23 人工智能行业每周技术动态
  8. requests用法之爬取豆瓣排行
  9. 安顺控股冲刺A股上市:拟募资6.5亿元,九成收入来自天然气销售
  10. 《鱿鱼游戏》助奈飞Q3新增用户翻倍