OJ sdust Java记录

设计一个Book类,包含书名、出版日期和定价。提供按出版日期降序和价格升序排序的功能。BookComparatorByPrice按价格升序排序,价格相同则按书名字母顺序。BookComparatorByPubDate按出版日期降序排序。实现Comparator接口并重写compare方法来完成排序逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6-1 sdust-Java-可实现多种排序的Book类 (20 分)

设计Book类,要求:1)Book类的成员属性包括:书名name(String类型)、出版日期publishDate(Date类型)、定价price(double型);2)为Book对象提供按出版日期、价格排序的两种方式,且能够满足测试程序代码中的输入输出要求(注意代码注释中的说明)。其中,类BookComparatorByPrice的排序功能是:将一组Book对象按照价格升序排序,如果价格相同,则按照书名字母顺序排列;类BookComparatorByPubDate的排序功能是:将一组Book对象按照出版日期降序排序。

裁判测试程序样例:

public class Main {
   
	public static void main(String[] args) {
   
		Scanner scan = new Scanner(System.in);
		Book[] books = new Book[4];
		//1. 从键盘接收用户输入的4本书的名称(仅有英文字符构成)、出版日期(格式:1998-10-09)、价格,生成Book对象,构造包含4本书的数组
		for(int i=0;i<4;i++){
   
			String name = scan.next();
			String date_str = scan.next();
			Date date = null;
			//将键盘录入的日期字符串转换为Date
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			try {
   
				date = sdf.parse(date_str);
			} catch (ParseException e) {
   
				System.out.println("日期格式有误");;
			}
			
			double price = Double.parseDouble(scan.next());
			
			Book book = new Book(name, date, price);
			books[i] = book;
		}
		
		//2.将books按照出版日期降序排序;然后输出books
		Arrays.sort(books
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值