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代码库 严威 类和包的结构关系设计 ...
随机推荐
- 一梦江湖费六年——QQ群聊天分析
本文结构: 一.那些年我们加过的QQ群 二.数据读入和整理(一)--来自蓝翔的挖掘机 二.数据读入和整理(二)--你不知道的事 三.聊天宏观(1)--寤寐思服 三.聊天宏观(2)日月篇 三.聊天宏观( ...
- Project Euler 75: Singular integer right triangles
题目链接 思路: 勾股数组,又称毕达格拉斯三元组. 公式:a = s*t b = (s^2 - t^2) / 2 c = (s^2 + t^2) / 2 s > t >=1 且为互质的奇数 ...
- Lab 10-1
This lab includes both a driver and an executable. You can run the executable from anywhere, but in ...
- Inquirer.js
一个使用界面进行交互的命令行集合 4.0以上的版本只支持node 6以上的,node4请使用3.x 目标和理念(hilosophy) 努力去做一个容易的 嵌入式的(embeddable) 和优美的命令 ...
- vue中data中引用本地图片报错404
首先说明vue-cli中assets和static两个文件的区别 1.assets在项目编译的过程中会被webpack处理理解为模块依赖,如果执行npm run dev或npm run build命令 ...
- github项目上传与克隆
1. 先去git官网https://git-scm.com/下载git: 2. 桌面新建文件夹,例如project,文件夹中新建任意文件例如index.html: 3. 打开文件夹,按住shift+右 ...
- MQ & RPC 消息队列与RPC的区别与使用场景
MQ: 区别:面向数据.生产者与消费者.有缓冲节点.异步.系统级/模块级通信 选型:RabbitMQ.ActiveMQ/Apollo.ZeroMQ.memcacheQ.Redis.MSMQ.kafk ...
- PlantUML + Chrome 联合使用
之前都是本地下载安装一个PlantUML,安装过程有点复杂,涉及到的其他插件也有些多. 后面发现Chrome浏览器上提供了相关插件,整个过程简直太流畅了.记录下. 安装: 打开Chrome的线上应用商 ...
- laravel5.5 env
env 函数 读取的变量里面带有 # 号的情况下 数据会丢失
- 微信内嵌浏览器打开手机浏览器下载APP(APK)的方法
想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数 ...