使用Collections类。 Book类:该类有price成员变量。该类要实现Comparable接口,在接口的compareTo()方法中规定Book类两个实例的大小关系为二者的price成员的大小关系。 SortSearchMainClass类:是主类,在main()方法中将Book类的若干个对象存放到一个链表中,然后再用Book类创建一个新的对象,并检查这个对象和链表中哪些对象相等。效果如下:
时间: 2024-02-28 20:55:37 浏览: 16
以下是一个使用Collections类实现的程序,包含了Book类和SortSearchMainClass类:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Book implements Comparable<Book> {
private double price;
public Book(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
// 实现Comparable接口的compareTo方法,规定两个Book对象的大小关系
public int compareTo(Book other) {
return Double.compare(this.price, other.price);
}
public static void main(String[] args) {
// 创建一个包含若干个Book对象的链表
List<Book> books = new ArrayList<>();
books.add(new Book(10.0));
books.add(new Book(20.0));
books.add(new Book(30.0));
books.add(new Book(40.0));
books.add(new Book(50.0));
// 创建一个新的Book对象,并检查它和链表中哪些对象相等
Book newBook = new Book(30.0);
int index = Collections.binarySearch(books, newBook);
if (index >= 0) {
System.out.println("新书价格为 " + newBook.getPrice() + " 的书已存在,位置为 " + index);
} else {
System.out.println("新书价格为 " + newBook.getPrice() + " 的书不存在,可以插入到位置 " + (-index-1));
}
}
}
```
在这个程序中,我们首先定义了Book类,其中包含了一个price成员变量,并实现了Comparable接口,规定了两个Book对象的大小关系为它们price成员的大小关系。然后,我们在SortSearchMainClass类的main()方法中创建了一个包含若干个Book对象的链表。接着,我们创建了一个新的Book对象,并使用Collections类的binarySearch()方法,在链表中查找它的位置,如果返回值大于等于0,则说明这个新书已经存在;否则,返回的值为-(insertion point)-1,insertion point是可以将新书插入到链表中的位置。最后,我们根据返回值输出相应的结果。