6-1 图书列表 (25 分)
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 分)相关推荐
- 6-23 图书列表 (25分)
构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, int price, Str ...
- 6-2 图书列表 (20分)
6-2 图书列表 (20分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, ...
- 6-34 图书列表 (20 分)
6-34 图书列表 (20 分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String nam ...
- 7-5 悄悄关注 (25 分) 新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列
7-5 悄悄关注 (25 分) 新浪微博上有个"悄悄关注",一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户.现在我们来做一回网络侦 ...
- 7-43 字符串关键字的散列映射 (25 分)(思路+详解+不懂的兄弟们来呀)兄弟们我干了5个小时,一个一个测试点过的
一:题目 7-43 字符串关键字的散列映射 (25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位 ...
- PAT乙级1025反转链表 25(分)
1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为3→2→1→6→5→ ...
- 【CCCC】L2-019 悄悄关注 (25分),,模拟水题,STL大法好
problem L2-019 悄悄关注 (25分) 新浪微博上有个"悄悄关注",一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户.现 ...
- 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例
文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...
- 7-20 电话聊天狂人(25 分)(Hash模板)
7-20 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤105),为通话记录条数.随后N行,每行给出一条通话记录.简单 ...
最新文章
- 您如何重命名MongoDB数据库?
- 教你在64位Win7系统下使用ObRegisterCallbacks内核函数来实现进程保护
- 程序员面试题精选100题(20)-最长公共子串[算法]
- Maven环境变量配置以及修改阿里云镜像
- Elasticsearch之type底层结构及弃用原因
- 客户合作伙伴关系研究
- 前端入门技巧之浏览器调试
- 控制器如何跳转web-inf下的项目_第一次开发项目感想
- h5微信本地调试 vue_Vue 移动端微信内H5调起支付(利用js sdk)
- mysqldump普通账号Got error: 1044
- ubuntu 绑定网卡
- java 内存情况_Java代码中获取运行时内存情况
- IntelliJ IDEA使用技巧(五)——页面乱码和控制台乱码
- 树莓派4b 3.5inch显示屏+远程+FTP+建站
- UE支持的Codec对比
- 监控系统java调用摄像头_java调用摄像头实例
- 基于滴滴云搭建 Ceph 开发环境
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
- Instance Tunnel 使用
- IT痴汉的工作现状30-刀客许三爷(下)
热门文章
- one or more assertions failed
- springboot+mybatisPlus简单实现数据分页显示
- (数据结构)二叉树先序遍历
- 五款热门手机APP黑科技 值得推荐一波
- 把英雄分类,看 Python 带你上王者
- mysql ora01031_本地以sysdba 身份登录数据库实例时,报错ORA-01031 权限不足
- 一次搞定微表情数据集下载 SAMM+SMIC+CASME1+CASME2+CASME^2CASME3 可下载到本地
- 在线答疑系统的设计与实现
- 从零搭建SpringCloud服务(史上最详细)
- 输入三个字符串比较大小