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代码库 严威 类和包的结构关系设计 ...
随机推荐
- ArcGIS JS API4 With VueJS集成开发
1.USING VUEJS WITH ARCGIS API FOR JAVASCRIPT,集成VUE到ArcGIS JS开发中. 2.ARCGIS API 4 FOR JS WITH VUE-CLI ...
- python实现列表去重的方法
>>> l=[,,,,,,] >>> list(set(l)) [, , , ] >>>
- JAVA-重载(overload)和重写(overrite)
1.重载发生在同一个类中.有多个方法名相同,但是参数列表不同(包括参数个数和参数类型),和返回值无关,权限修饰符也无关. 2.重写(即覆盖)发生在子类和父类中.子类和父类的方法名.参数列表相同:子类的 ...
- js-对象的重要概念
抽象 抽象是通过特定的实例抽取共同特征以后形成概念的过程.它强调主要特征,忽略次要特征.一个对象是现实世界中一个实体的抽象. 对象三个特性 1.封装 把客观事物封装成抽象的类,隐藏属性和方法的实现细节 ...
- 【改】利用ALSA库进行音频重采样
转自:http://www.voidcn.com/article/p-snamarwr-p.html 一.ALSA介绍: 1.简介: 高级Linux声音体系(英语:Advanced LinuxSoun ...
- Error during generated code invocation: com.intellij.debugger.engine.evaluation.EvaluateException: Method threw 'java.lang.IllegalAccessError' exception.
场景描述: 再从该数据库中读取数据进行处理的时候,需要将某个字段加入到一个动态的map中,然后需要对该map进行filter过滤,在执行过滤方法的时候报错 Error during generated ...
- python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)
使用adb命令 ./adb shell screencap -p 可以截取当前屏幕,并且作为stdout,传给外部.那么对于python,我们可以用如下代码获取数据流. 使用Popen创建子进程用于读 ...
- Maven发布jar包到私库
首先修改maven的配置文件settings.xml,增加servers标签,配好maven服务器的账号密码 <servers> <server> <id>rele ...
- 『高性能模型』Roofline Model与深度学习模型的性能分析
转载自知乎:Roofline Model与深度学习模型的性能分析 在真实世界中,任何模型(例如 VGG / MobileNet 等)都必须依赖于具体的计算平台(例如CPU / GPU / ASIC 等 ...
- 从ranknet到lamdarank,再到lamdamart
learn2rank目前基本两个分支,1是神经网络学派ranknet,lamdarank,另一个是决策树学派如gbrank,lamdamart 05年提出ranknet,算分模块是简单的全连接网络,l ...