java任务--compareBook

来源:互联网 发布:excel筛选数据 编辑:程序博客网 时间:2024/05/22 14:28

编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等:
Book类:

package compareBook;public class Book implements Comparable{    String name;    int price;    Book(String n,int p){  //构造方法        name=n;        price=p;    }    @Override    public int compareTo(Object book1) {  //重写接口中的方法        //Book book2 = new Book("java",20);        Book book = (Book) book1;  //将book1强制类型转换为Book类型        return this.price-book.price;//当前与传入的book1的价格做差    }}

test:

package compareBook;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class test {    public static void main(String[] args) {        List<Book> list = new LinkedList<Book>();  //用链表做集合        list.add(new Book("Java",20));  //将几本书加入到链表中        list.add(new Book("c",30));        list.add(new Book("c++",20));        list.add(new Book("Databook",24));        list.add(new Book("AE",30));        Book b = new Book("Photoshop",20);        Iterator<Book> it =list.iterator();  //为链表添加迭代器        System.out.println("新书"+b.name+"与下列图书:");        while(it.hasNext()){   //只要链表中还有数据就执行循环            Book bk =it.next();  //数据取出赋给bk            if(b.compareTo(bk)==0)  //将新书b与表中所有的书进行比较,价格之差为0即相等,则输出                System.out.println(bk.name);;        }        System.out.println("具体价格为:"+b.price);    }}

运行结果:
这里写图片描述

原创粉丝点击