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

编号  书名         价格      出版社

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. Struts2---动态action以及应用

    为了处理各种逻辑业务,根据execute方法来判断请求哪种业务,然后将请求转发到对应的业务处理上, 通过动态请求action对象中的方法,实现某个单一的业务逻辑处理. 动态action的应用 //创建 ...

  2. Vue-admin工作整理(十四):Vuex和双向绑定

    概述,普通的直接通过input修改值然后取是不符合vue的规格的,所有数据定义和传递必须通过actions或者mutation来做 思路:通过在mutation层对字段进行定义值,在store中通过v ...

  3. Poj2018 Best Cow Fences

    传送门 题目大意就是给定一个长度为 n 的正整数序列 A ,求一个平均数最大的,长度不小于 L 的子序列. 思路: 二分答案. Code: #include<iostream> #incl ...

  4. 修改Ubuntu锁屏快捷键

    修改为Win + L. 避免与Phpstorm中的代码格式化冲突.

  5. 添加并删除Marker

    var data=new Array(); // 定位.显示内容 function setLocation(x,y,name,time,speed,direction,GPSstatus,carsta ...

  6. Java ----> java io / java nio / java net 学习资源汇总

    Java IO教程 Java NIO 系列教程 Java网络教程 学习Java基础的一个英文网站:http://tutorials.jenkov.com/ ,上面中文教程来自并发编程网,上面中文教程翻 ...

  7. 自己封装的一个类似axios的请求

    下载:https://pan.baidu.com/s/1k0-CpGGtfDTsCm85NMfuHA 使用: axios({ method:'post', baseURL:baseAddress, u ...

  8. 初步接触gulp

    首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最 ...

  9. EF中关于日期字值的处理

    一.SQL语句方式 var datefrom = DateTime.Parse(fromdate);   var dateto = DateTime.Parse(todate); var sql = ...

  10. Linuxpython3安装库