zsxxn 发表于 2023-11-12 17:48:35

Java

Java编程请使用集合框架完成集合元素的排序与查找。实验要求:
①编写一个Book类,该类至少有name和price成员变量。该类要求实现Comparable接口,在接口的compareTo()方法中规定Book类的两个实例的大小关系为两者的price成员的大小关系。
②编写一个主类SortSearchClass,在main()方法中将Book类的若干个对象存放到一个链表(ArrayList或LinkedList)中,然后用Book类创建一个新的对象,并检查这个对象和链表中的哪些对象相等。

isdkz 发表于 2023-11-12 17:48:41

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);
    }
}

Mike_python小 发表于 2023-11-12 17:49:32

下面是根据您的要求编写的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]
查看完整版本: Java