定义图书类Book(有四个属性),图书馆Library类(一个hashset集合,可增加新书,查看添加的书)........详细题目可看内容

本文主要是介绍定义图书类Book(有四个属性),图书馆Library类(一个hashset集合,可增加新书,查看添加的书)........详细题目可看内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/**
 *     定义图书类Book,具有属性账号id,书名name、作者author 和价格price,
    在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值,
    要求账户属性是int型,名称是String型,作者是String型,价格是double,
    请合理进行封装。
    2)在Book类,添加toString方法,要求返回 图书信息字符串,使用\t隔开各信息
    3)要求定义一个图书馆Library类,在图书馆类中添加一个HashSet集合用于保存多本图书
    4)在图书馆类中要求能够新增图书
    5)在图书馆类中要求可以查看所有添加过的图书
    6)不允许添加重复的图书(如果账号id和书名name相同,则认为两本书是相同的)
    效果:
    请输入图书编号:
    1
    请输入图书名称:
    致青春
    请输入图书作者:
    王小五
    请输入图书价格:
    120
    是否继续输入:y
    请输入图书编号:
    2
    请输入图书名称:
    西游记
    请输入图书作者:
    吴承恩
    请输入图书价格:
    230
    是否继续输入:n
    查看图书
    1,致青春,王小五,120
    2,西游记,吴承恩,230
 * @author King_long
 *
 */

package CollectionDemo;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;public class Library{public static void main(String[] args) {// TODO Auto-generated method stubaddTS();}//添加public static void addTS() {HashSet<Book> hashSet=new HashSet<>();Scanner scanner=new Scanner(System.in);do {System.out.println("请输入账号id:");int id=scanner.nextInt();System.out.println("请输入图书名称:");String bookName=scanner.next();System.out.println("请输入作者:");String author=scanner.next();System.out.println("请输入图书价格:");double price=scanner.nextDouble();hashSet.add(new Book(id, bookName, author, price));System.out.println("是否继续,请输入(y/n):");String string=scanner.next();if ("y".equals(string)) {System.out.println(hashSet);}else {System.out.println("查看图书");break;}}while(true);ArrayList<Book> arrayList=new ArrayList<>(hashSet);Collections.sort(arrayList);Iterator<Book> iterator = arrayList.iterator();while (iterator.hasNext()) {Book book = (Book) iterator.next();System.out.println(book);}}
}
package CollectionDemo;public class Book implements Comparable<Book>{private int id;private String bookName;private String author;private double price;public Book() {super();}public Book(int id, String bookName, String author, double price) {super();this.id = id;this.bookName = bookName;this.author = author;this.price = price;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((bookName == null) ? 0 : bookName.hashCode());result = prime * result + id;return result;}public int getId() {return id;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Book other = (Book) obj;if (bookName == null) {if (other.bookName != null)return false;} else if (!bookName.equals(other.bookName))return false;if (id != other.id)return false;return true;}@Overridepublic String toString() {return "Book [id=" + id +"\t"  + bookName + "\t" + author +"\t" + price + "]";}@Overridepublic int compareTo(Book o) {// TODO Auto-generated method stubreturn this.getId()-o.getId();}}

这篇关于定义图书类Book(有四个属性),图书馆Library类(一个hashset集合,可增加新书,查看添加的书)........详细题目可看内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168666

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图