西瓜瓜瓜

导航

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 }

 

posted on 2019-04-09 21:35  西瓜瓜瓜  阅读(316)  评论(0编辑  收藏  举报