Java 平时作业七
以下是几本计算机书籍的基本信息
编号 书名 价格 出版社
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 平时作业七的更多相关文章
- 平时作业七 Java
以下是几本计算机书籍的基本信息编号 书名 价格 出版社1 JAVA基础 32 清华大学出版社2 JAVA WEB开发 40 电子工业出版社3 面向对象程序设计 28 清华大学出版社4 Struts开发 ...
- Java 平时作业四
编写一个Java程序实现返回指定目录及其子目录下扩展名为*.pdf的所有文件名. 扩展: isFile public boolean isFile() 测试此抽象路径名表示的文件是否为普通文件. 如果 ...
- Java 平时作业六
编写一个 Java 应用程序,使用 Java 的输入输出流技术将 Input.txt 的内容(Input.txt 为文本 文件)逐行读出, 每读出一行就顺序为其添加行号(从 1 开始,逐行递增),并写 ...
- Java 平时作业五
使用 I/O 流和文件对象实现目录备份功能. package asg5; import java.io.File; import java.io.FileInputStream; import jav ...
- Java 平时作业三
自定义一个可以存储 int 类型的集合类(例如:SequenceList),封装一维数组存储数据,该 集合类具有以下方法: (1)新增元素: (2)在指定位置插入一个元素: (3)按位置删除元素: ( ...
- JAVA 平时作业二
编写一个 Java 应用程序,统计数组{1,3,4,7,2,1,1,5,2,5,7,2,1,1,3},统 计显示每种数字其出现的次数以及出现最多和最少次数的数字 public class Number ...
- JAVA 平时作业一
public class Print { public static void main (String arg[]) { for(int i=0;i<16;i++) { for(int j=0 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- java大作业博客--购物车
Java 大作业----使用MySQL的购物车 一.团队介绍 姓名 任务 李天明.康友煌 GUI设计及代码编写 谢晓淞 业务代码编写.MySQL服务器平台部署.git代码库 严威 类和包的结构关系设计 ...
随机推荐
- python实现列表去重的方法
>>> l=[,,,,,,] >>> list(set(l)) [, , , ] >>>
- Kotlin 接口
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun fo ...
- chordDiagramFromMatrix()函数与circos.link()函数结合绘制箭头线
chordDiagramFromMatrix(matp2,annotationTrack="grid", grid.col = c(re ...
- 调节kafka消费信息的大小
Kafka设计的初衷是迅速处理短小的消息,一般10K大小的消息吞吐性能最好(可参见LinkedIn的kafka性能测试).但有时候,我们需要处理更大的消息,比如XML文档或JSON内容,一个消息差不多 ...
- Elinks介绍
Elinks是基于文本的免费浏览器,用于Unix及基于Unix的系统.Elinks支持 HTTP,HTTP Cookies以及支持浏览Perl和Ruby脚本.也很好的支持选项卡浏览.最棒的是它支持鼠标 ...
- Maven发布jar包到私库
首先修改maven的配置文件settings.xml,增加servers标签,配好maven服务器的账号密码 <servers> <server> <id>rele ...
- sublime和vscode 格式化Json ——两步走
目录 1.问题来源 2.sublime安装插件方式 3.使用方式 4.扩展:对于软件vscode 1.问题来源 最近做数据匹配任务,需要生成很多json文件,但是每个json文件又太大,想要逐字段(k ...
- C# 枚举 Flag属性(权限设计)
枚举是一个可以列举元素的对象,常用于权限,日期,类型等. 如果对一个值可以包含多个,那么可以使用枚举,加上Flags [Flag] public enum Permission { create=, ...
- 记一次mybatis bindingexception 问题排查
看到的错误信息如出一辙都是这样的:Method threw 'org.apache.ibatis.binding.BindingException' exception.Invalid bound s ...
- JavaScript进阶系列1:performace和console.time性能测试
测试性能的时候,三种方法: 1.使用new Date() 返回整数值ms var dtStart=new Date(); for(var i=0;i<15000;i++){ i=i; } var ...