以下是几本计算机书籍的基本信息

编号  书名         价格      出版社

1  JAVA 基础   32   清华大学出版社

2  JAVA WEB 开发  40   电子工业出版社

3  面向对象程序设计 28   清华大学出版社

4  Struts 开发   30   人民邮电出版社

5  C 语言基础   18   机械工业出版社

6       JAVA 基础            32          电子工业出版社

请编写 JAVA 代码,按书名进行升序排序,如书名相同按价格升序排序,如书名与价格都相 同则按出版社升序排列,并将排序后的书籍信息(包括编号,书名,价格,出版社)输出到 屏幕。

sortbook

 package asg7;

 import java.util.Comparator;

 public class SortBook {

     public class BookInfo{

         private String bookname;
private String press;
private int price;
private int num; public BookInfo()
{} public BookInfo(String bookname, String press, int price,int num)
{
this.bookname = bookname;
this.press = press;
this.price = price;
this.num=num; } public String getBookname() {
return bookname;
} public String getPress() {
return press;
} public int getPrice() {
return price;
} public int getNum() {
return num;
}
//获取各个字段的值 public void setBook(String bookname, String press, int price,int num) { this.bookname = bookname;
this.press = press;
this.price = price;
this.num=num; }
//重置各个字段的值 public void show()
{
System.out.println(this.getBookname()+" "+this.getPrice()+" "+this.getPress()+" "+this.getNum());
} } public class BookComparator implements Comparator<BookInfo>{
public int compare(BookInfo o1, BookInfo o2) {
//当然可以用其他成员变量来作为衡量比较的标准 int x =o1.getBookname().compareTo(o2.getBookname());
int y = o1.getPrice() - o2.getPrice();
int z = (o1.getPress().compareTo(o2.getPress())); if (x != 0) {
return x > 0 ? 1:-1;
}
if (y != 0) {
return y > 0 ? 1:-1;
}
if(z!=0) {
return z > 0 ? -1:1;
}
return o1.bookname.compareTo(o2.bookname); }
} }

test

 package asg7;

 import java.util.Arrays;

 import asg7.SortBook.BookInfo;

 public class Test {

     public static void main(String args[])
{ SortBook sortbook=new SortBook();
BookInfo [] bookInfo;
bookInfo=new BookInfo[6]; bookInfo[0]=sortbook.new BookInfo();
bookInfo[1]=sortbook.new BookInfo();
bookInfo[2]=sortbook.new BookInfo();
bookInfo[3]=sortbook.new BookInfo();
bookInfo[4]=sortbook.new BookInfo();
bookInfo[5]=sortbook.new BookInfo(); bookInfo[0].setBook("JAVA基础","清华大学出版社 ",32,1);
bookInfo[1].setBook("JAVAWEB开发","电子工业出版社 ",40,2);
bookInfo[2].setBook("面向对象程序设计","清华大学出版社 ",28,3);
bookInfo[3].setBook("Struts开发","人民邮电出版社",30,4);
bookInfo[4].setBook("C语言基础","机械工业出版社 ",18,5);
bookInfo[5].setBook("JAVA基础","电子工业出版社",32,6); Arrays.sort(bookInfo,sortbook.new BookComparator()); for(int i=0;i<bookInfo.length;i++) {
bookInfo[i].show();
} } }

Java 平时作业七的更多相关文章

  1. 平时作业七 Java

    以下是几本计算机书籍的基本信息编号 书名 价格 出版社1 JAVA基础 32 清华大学出版社2 JAVA WEB开发 40 电子工业出版社3 面向对象程序设计 28 清华大学出版社4 Struts开发 ...

  2. Java 平时作业四

    编写一个Java程序实现返回指定目录及其子目录下扩展名为*.pdf的所有文件名. 扩展: isFile public boolean isFile() 测试此抽象路径名表示的文件是否为普通文件. 如果 ...

  3. Java 平时作业六

    编写一个 Java 应用程序,使用 Java 的输入输出流技术将 Input.txt 的内容(Input.txt 为文本 文件)逐行读出, 每读出一行就顺序为其添加行号(从 1 开始,逐行递增),并写 ...

  4. Java 平时作业五

    使用 I/O 流和文件对象实现目录备份功能. package asg5; import java.io.File; import java.io.FileInputStream; import jav ...

  5. Java 平时作业三

    自定义一个可以存储 int 类型的集合类(例如:SequenceList),封装一维数组存储数据,该 集合类具有以下方法: (1)新增元素: (2)在指定位置插入一个元素: (3)按位置删除元素: ( ...

  6. JAVA 平时作业二

    编写一个 Java 应用程序,统计数组{1,3,4,7,2,1,1,5,2,5,7,2,1,1,3},统 计显示每种数字其出现的次数以及出现最多和最少次数的数字 public class Number ...

  7. JAVA 平时作业一

    public class Print { public static void main (String arg[]) { for(int i=0;i<16;i++) { for(int j=0 ...

  8. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  9. java大作业博客--购物车

    Java 大作业----使用MySQL的购物车 一.团队介绍 姓名 任务 李天明.康友煌 GUI设计及代码编写 谢晓淞 业务代码编写.MySQL服务器平台部署.git代码库 严威 类和包的结构关系设计 ...

随机推荐

  1. Oracle 《积累章》 根据身份证号码更新当前出生日期

    ,),'yyyy-MM-dd') 函数使用 to_date()      日期转换函数 to_date(substr(t.sfzh,7,8),'yyyy-MM-dd')   将“19901212” 转 ...

  2. 用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案

    问题背景:下载了2018 IEEE 最新的 oui.txt 文件.里面包含了 设备 MAC 地址的前六位对应的厂商.要做的工作是,将海量设备的 MAC 地址与 oui.txt 文件的信息比对,统计出 ...

  3. 简单H5单页面真机调试

    1.安装Node.js 这个没什么好说的,直接去官网下载安装就好了. Node.js官网:https://nodejs.org 2.安装http-server 直接在命令行中安装到全局(-g表示安装到 ...

  4. MATLAB 实时脚本(live-script)使用

    在matlab2016a及以上的版本不建议安装notebook来编写实施脚本,以为之后的matlab里面会有live-script,他可以创建实施脚本,使脚本与方便操作.那么这个live script ...

  5. ggplot的boxplot添加显著性 | Add P-values and Significance Levels to ggplots | 方差分析

    参考:Add P-values and Significance Levels toggplots 多组比较,挑选感兴趣的显示显著性. data("ToothGrowth") he ...

  6. dedecms织梦文章微信分享带缩略图与简介

    dedecms V5.7二次开发 php5.6 mysql5.1 问题:dedecms文章分享到微信,带缩略图与简介.如下图: 1.准备工作 PHP 5.3+ 并且 curl扩展已经开启 微信服务号一 ...

  7. Vue的父子组件间通信及借助$emit和$on解除父子级通信的耦合度高的问题

    1.父子级间通信,父类找子类非常容易,直接在子组件上加一个ref,父组件直接通过this.$refs操作子组件的数据和方法    父 这边子组件中 就完成了父 => 子组件通信 2. 子 =&g ...

  8. line-height:150%与line-height:1.5的区别

    今天看到一篇文章,说的是CSS学习中的瓶颈,我最近也发现自己css很薄弱,写的样式总是有兼容性问题,要写很久,发现了一个问题,我从来没有用过line-height:150和line-height:1. ...

  9. 【C/C++】数组 & 指针

    int main() { ]; ]; ][]; ]; ]; ]; ][]; cout << sizeof(a) << endl; cout << sizeof(pa ...

  10. 关于leal和mov

    最近在学习leal的时候遇到了一点非常迷惑的地方,就是leal是用来取有效地址的,但是为什么它也可以实现赋值呢?偶然发现一个博客讲的不错,遂自己记录一下 一个这样的例子 leal 7(%edx,%ed ...