6-1 图书列表 (25 分)

构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, int price, String author, int edition),提供该类的toString()equals()方法,toString方法返回所有成员属性的值的字符串形式,形如“name: xxx, price: xxx, author: xxx, edition: xxx”,当两个Book对象的名称(不关心大小写,无空格)、作者(不关心大小写,无空格)、版本号相同时,认为两者表示同一本书。 Main函数中,读入两本书,输出他们是否相等,打印两本书的信息。

构建一个书单类BookList,该类中用一个列表类对象存放书单,提供添加图书(addBook)、查找图书(searchBook)的函数 main函数从键盘输入多个Book添加到书单中,(添加时,提供书的名称、价格、作者、版本号),而后从键盘读入一本书,查找该列表对象中是否包含该书,若包含,输出”found: 该书在列表中的序号”,若不包含,输出“not found”,查找时,提供书的名称、作者、版本号。

输入描述:

添加书的个数 添加的书 查找的书

输出描述:

查找结果

裁判测试程序样例:

import java.util.Scanner;/* 你的答案被嵌在这里 */public class Main{public static void main(String[] args) {Scanner s = new Scanner(System.in);BookList bl = new BookList();int n = s.nextInt();for (int i=0; i<n;i++) {bl.addBook(new Book(s.next(),s.nextInt(),s.next(),s.nextInt()));}bl.searchBook(new Book(s.next(),0,s.next(),s.nextInt()));}
}

输入样例:

在这里给出一组输入。例如:

2
ThinkingInJava
86
BruceEckel
4
CoreJava
95
CayS.Horstmann
10
CoreJava
CayS.Horstmann
10

输出样例:

在这里给出相应的输出。例如:

found: 1

代码

import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;class Book {public String name;public int price;public String author;public int edition;public Book(String name, int price, String author, int edition) {this.name = name;this.price = price;this.author = author;this.edition = edition;}@Overridepublic String toString() {return "name: " + this.name + ", price: " + this.price + ", author: " + this.author + ", edition: " + this.edition;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (!(o instanceof Book)) return false;Book book = (Book) o;return edition == book.edition && name.equalsIgnoreCase(book.name) && author.equalsIgnoreCase(book.author);}@Overridepublic int hashCode() {return Objects.hash(name, author, edition);}
}class BookList {LinkedList<Book> booklist;BookList(){this.booklist = new LinkedList<>();}public void addBook(Book b) {booklist.add(b);}public void searchBook(Book b) {boolean fg = false;for (int i = 0; i < booklist.size(); i++) {if(b.equals(booklist.get(i))){System.out.println("found: "+i);fg=true;}}if(!fg){System.out.println("not found");}}}

6-1 图书列表 (25 分)相关推荐

  1. 6-23 图书列表 (25分)

    构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, int price, Str ...

  2. 6-2 图书列表 (20分)

    6-2 图书列表 (20分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, ...

  3. 6-34 图书列表 (20 分)

    6-34 图书列表 (20 分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String nam ...

  4. 7-5 悄悄关注 (25 分) 新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列

    7-5 悄悄关注 (25 分) 新浪微博上有个"悄悄关注",一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户.现在我们来做一回网络侦 ...

  5. 7-43 字符串关键字的散列映射 (25 分)(思路+详解+不懂的兄弟们来呀)兄弟们我干了5个小时,一个一个测试点过的

    一:题目 7-43 字符串关键字的散列映射 (25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位 ...

  6. PAT乙级1025反转链表 25(分)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为3→2→1→6→5→ ...

  7. 【CCCC】L2-019 悄悄关注 (25分),,模拟水题,STL大法好

    problem L2-019 悄悄关注 (25分) 新浪微博上有个"悄悄关注",一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户.现 ...

  8. 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例

    文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...

  9. 7-20 电话聊天狂人(25 分)(Hash模板)

    7-20 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为通话记录条数.随后N行,每行给出一条通话记录.简单 ...

最新文章

  1. 您如何重命名MongoDB数据库?
  2. 教你在64位Win7系统下使用ObRegisterCallbacks内核函数来实现进程保护
  3. 程序员面试题精选100题(20)-最长公共子串[算法]
  4. Maven环境变量配置以及修改阿里云镜像
  5. Elasticsearch之type底层结构及弃用原因
  6. 客户合作伙伴关系研究
  7. 前端入门技巧之浏览器调试
  8. 控制器如何跳转web-inf下的项目_第一次开发项目感想
  9. h5微信本地调试 vue_Vue 移动端微信内H5调起支付(利用js sdk)
  10. mysqldump普通账号Got error: 1044
  11. ubuntu 绑定网卡
  12. java 内存情况_Java代码中获取运行时内存情况
  13. IntelliJ IDEA使用技巧(五)——页面乱码和控制台乱码
  14. 树莓派4b 3.5inch显示屏+远程+FTP+建站
  15. UE支持的Codec对比
  16. 监控系统java调用摄像头_java调用摄像头实例
  17. 基于滴滴云搭建 Ceph 开发环境
  18. TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
  19. Instance Tunnel 使用
  20. IT痴汉的工作现状30-刀客许三爷(下)

热门文章

  1. one or more assertions failed
  2. springboot+mybatisPlus简单实现数据分页显示
  3. (数据结构)二叉树先序遍历
  4. 五款热门手机APP黑科技 值得推荐一波
  5. 把英雄分类,看 Python 带你上王者
  6. mysql ora01031_本地以sysdba 身份登录数据库实例时,报错ORA-01031 权限不足
  7. 一次搞定微表情数据集下载 SAMM+SMIC+CASME1+CASME2+CASME^2CASME3 可下载到本地
  8. 在线答疑系统的设计与实现
  9. 从零搭建SpringCloud服务(史上最详细)
  10. 输入三个字符串比较大小