Java
Java编程请使用集合框架完成集合元素的排序与查找。实验要求:①编写一个Book类,该类至少有name和price成员变量。该类要求实现Comparable接口,在接口的compareTo()方法中规定Book类的两个实例的大小关系为两者的price成员的大小关系。
②编写一个主类SortSearchClass,在main()方法中将Book类的若干个对象存放到一个链表(ArrayList或LinkedList)中,然后用Book类创建一个新的对象,并检查这个对象和链表中的哪些对象相等。 import java.util.ArrayList;
import java.util.Collections;
class Book implements Comparable<Book> {
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public int compareTo(Book otherBook) {
return Double.compare(this.price, otherBook.price);
}
}
public class SortSearchClass {
public static void main(String[] args) {
ArrayList<Book> bookList = new ArrayList<>();
bookList.add(new Book("Book1", 20.0));
bookList.add(new Book("Book2", 15.0));
bookList.add(new Book("Book3", 25.0));
Book newBook = new Book("NewBook", 20.0);
for (Book book : bookList) {
if (book.equals(newBook)) {
System.out.println("The new book is equal to: " + book.getName());
}
}
Collections.sort(bookList);
System.out.println("Sorted book list: " + bookList);
}
}
下面是根据您的要求编写的Java代码。在这个示例中,我们创建了一个Book类,实现了Comparable接口来定义Book对象的比较规则,然后在SortSearchClass主类中使用ArrayList来存储Book对象,并演示了如何检查新创建的Book对象与ArrayList中的其他对象是否相等。
java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Book implements Comparable<Book> {
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public int compareTo(Book other) {
return Double.compare(this.price, other.price);
}
public String getName() {
return name;
}
}
public class SortSearchClass {
public static void main(String[] args) {
List<Book> bookList = new ArrayList<>();
bookList.add(new Book("Book1", 20.0));
bookList.add(new Book("Book2", 15.0));
bookList.add(new Book("Book3", 25.0));
Book newBook = new Book("Book4", 15.0);
// 检查新创建的Book对象与ArrayList中的其他对象是否相等
for (Book book : bookList) {
if (book.compareTo(newBook) == 0) {
System.out.println("新书 " + newBook.getName() + " 与书籍列表中的 " + book.getName() + " 相等。");
} else {
System.out.println("新书 " + newBook.getName() + " 与书籍列表中的 " + book.getName() + " 不相等。");
}
}
// 对书籍列表进行排序
Collections.sort(bookList);
System.out.println("按价格排序后的书籍列表:");
for (Book book : bookList) {
System.out.println(book.getName() + ": ¥" + book.getPrice());
}
}
}
在这个示例中,我们创建了Book类,并实现了Comparable接口来定义Book对象的比较规则。然后在SortSearchClass主类中,我们使用ArrayList来存储Book对象,创建一个新的Book对象,并检查它与ArrayList中的其他对象是否相等。最后,我们对ArrayList中的Book对象按照价格进行排序,并输出排序后的结果。
页:
[1]