定义图书类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整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper