java任务--compareBook

编写一个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);





    }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值