【问题描述】编写一个Book类,该类至少有name和price两个属性。该类要实现Comarable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。
【输入形式】每一行输入一个Book类的对象,名字和价格之间用逗号分隔,集合类的输入结束符号是#,然后输入一个新的Book类对象。
【输出形式】
显示查找结果,如果找到了,就显示具体对象的信息,没找到,就不显示。
【样例输入1】
input several Book,in the end #
yuwen,10
shuxue,12
yingyu,11
input a new Book:
kexue,12
【样例输出1】
new book:< kexue >as same books
shuxue,12.0
【样例输入2】
input several Book,in the end #
yuwen,10
shuxue,12
waiyu,11
input a new Book:
kexue,13
【样例输出2】
new book:< kexue >as same books
比较字符串是否相等用equals(str1,str2)
package first;
import java.util.*;
public class Test {
public static void main(String[] args) {
System.out.println("input several Book,in the end #");
Scanner input = new Scanner(System.in);
List<Book>list = new ArrayList<Book>();
String name=input.nextLine();
while(!name.equals("#"))
{
String s[] = name.split(",");
double p1 = Double.valueOf(s[1]);
list.add (new Book(s[0],p1));
name = input.nextLine();
};
System.out.println("input a new Book:");
String n = input.nextLine();
String str[] = n.split(",");
double p2 = Double.valueOf(str[1]);
Book a = new Book(str[0],p2);
System.out.println("new book:<"+a.name+">as same books");
for(int i=0;i<list.size();i++)
{
if(a.compareTo(list.get(i))==1)
{
System.out.print(list.get(i).name+",");
System.out.print(list.get(i).price);
}
}
}
}
class Book implements Comparable<Book>{
public String name;
public double price;
public Book(String n,double p){
this.name = n;
this.price = p;
}
public int compareTo(Book o) {
Book book = (Book)o;
if(book.price==this.price)
return 1;
else
return 0;
}
}