Java 平时作业七
以下是几本计算机书籍的基本信息
编号 书名 价格 出版社
1 JAVA 基础 32 清华大学出版社
2 JAVA WEB 开发 40 电子工业出版社
3 面向对象程序设计 28 清华大学出版社
4 Struts 开发 30 人民邮电出版社
5 C 语言基础 18 机械工业出版社
6 JAVA 基础 32 电子工业出版社
请编写 JAVA 代码,按书名进行升序排序,如书名相同按价格升序排序,如书名与价格都相 同则按出版社升序排列,并将排序后的书籍信息(包括编号,书名,价格,出版社)输出到 屏幕。
sortbook
1 package asg7; 2 3 4 import java.util.Comparator; 5 6 7 public class SortBook { 8 9 public class BookInfo{ 10 11 private String bookname; 12 private String press; 13 private int price; 14 private int num; 15 16 public BookInfo() 17 {} 18 19 public BookInfo(String bookname, String press, int price,int num) 20 { 21 this.bookname = bookname; 22 this.press = press; 23 this.price = price; 24 this.num=num; 25 26 } 27 28 public String getBookname() { 29 return bookname; 30 } 31 32 public String getPress() { 33 return press; 34 } 35 36 public int getPrice() { 37 return price; 38 } 39 40 public int getNum() { 41 return num; 42 } 43 //获取各个字段的值 44 45 46 public void setBook(String bookname, String press, int price,int num) { 47 48 this.bookname = bookname; 49 this.press = press; 50 this.price = price; 51 this.num=num; 52 53 } 54 //重置各个字段的值 55 56 public void show() 57 { 58 System.out.println(this.getBookname()+" "+this.getPrice()+" "+this.getPress()+" "+this.getNum()); 59 } 60 61 62 63 64 65 } 66 67 public class BookComparator implements Comparator<BookInfo>{ 68 public int compare(BookInfo o1, BookInfo o2) { 69 //当然可以用其他成员变量来作为衡量比较的标准 70 71 72 int x =o1.getBookname().compareTo(o2.getBookname()); 73 int y = o1.getPrice() - o2.getPrice(); 74 int z = (o1.getPress().compareTo(o2.getPress())); 75 76 if (x != 0) { 77 return x > 0 ? 1:-1; 78 } 79 if (y != 0) { 80 return y > 0 ? 1:-1; 81 } 82 if(z!=0) { 83 return z > 0 ? -1:1; 84 } 85 return o1.bookname.compareTo(o2.bookname); 86 87 } 88 } 89 90 } 91
test
1 package asg7; 2 3 import java.util.Arrays; 4 5 import asg7.SortBook.BookInfo; 6 7 public class Test { 8 9 public static void main(String args[]) 10 { 11 12 SortBook sortbook=new SortBook(); 13 BookInfo [] bookInfo; 14 bookInfo=new BookInfo[6]; 15 16 17 18 bookInfo[0]=sortbook.new BookInfo(); 19 bookInfo[1]=sortbook.new BookInfo(); 20 bookInfo[2]=sortbook.new BookInfo(); 21 bookInfo[3]=sortbook.new BookInfo(); 22 bookInfo[4]=sortbook.new BookInfo(); 23 bookInfo[5]=sortbook.new BookInfo(); 24 25 bookInfo[0].setBook("JAVA基础","清华大学出版社 ",32,1); 26 bookInfo[1].setBook("JAVAWEB开发","电子工业出版社 ",40,2); 27 bookInfo[2].setBook("面向对象程序设计","清华大学出版社 ",28,3); 28 bookInfo[3].setBook("Struts开发","人民邮电出版社",30,4); 29 bookInfo[4].setBook("C语言基础","机械工业出版社 ",18,5); 30 bookInfo[5].setBook("JAVA基础","电子工业出版社",32,6); 31 32 33 Arrays.sort(bookInfo,sortbook.new BookComparator()); 34 35 for(int i=0;i<bookInfo.length;i++) { 36 bookInfo[i].show(); 37 } 38 39 40 } 41 42 }