鱼C论坛

 找回密码
 立即注册
查看: 921|回复: 2

[已解决]Java

[复制链接]
发表于 2023-11-12 17:48:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  3. class Book implements Comparable<Book> {
  4.     private String name;
  5.     private double price;

  6.     public Book(String name, double price) {
  7.         this.name = name;
  8.         this.price = price;
  9.     }

  10.     @Override
  11.     public int compareTo(Book otherBook) {
  12.         return Double.compare(this.price, otherBook.price);
  13.     }
  14. }

  15. public class SortSearchClass {
  16.     public static void main(String[] args) {
  17.         ArrayList<Book> bookList = new ArrayList<>();
  18.         bookList.add(new Book("Book1", 20.0));
  19.         bookList.add(new Book("Book2", 15.0));
  20.         bookList.add(new Book("Book3", 25.0));

  21.         Book newBook = new Book("NewBook", 20.0);

  22.         for (Book book : bookList) {
  23.             if (book.equals(newBook)) {
  24.                 System.out.println("The new book is equal to: " + book.getName());
  25.             }
  26.         }

  27.         Collections.sort(bookList);
  28.         System.out.println("Sorted book list: " + bookList);
  29.     }
  30. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 17:48:41 | 显示全部楼层    本楼为最佳答案   
  1. import java.util.ArrayList;
  2. import java.util.Collections;

  3. class Book implements Comparable<Book> {
  4.     private String name;
  5.     private double price;

  6.     public Book(String name, double price) {
  7.         this.name = name;
  8.         this.price = price;
  9.     }

  10.     @Override
  11.     public int compareTo(Book otherBook) {
  12.         return Double.compare(this.price, otherBook.price);
  13.     }
  14. }

  15. public class SortSearchClass {
  16.     public static void main(String[] args) {
  17.         ArrayList<Book> bookList = new ArrayList<>();
  18.         bookList.add(new Book("Book1", 20.0));
  19.         bookList.add(new Book("Book2", 15.0));
  20.         bookList.add(new Book("Book3", 25.0));

  21.         Book newBook = new Book("NewBook", 20.0);

  22.         for (Book book : bookList) {
  23.             if (book.equals(newBook)) {
  24.                 System.out.println("The new book is equal to: " + book.getName());
  25.             }
  26.         }

  27.         Collections.sort(bookList);
  28.         System.out.println("Sorted book list: " + bookList);
  29.     }
  30. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 17:49:32 | 显示全部楼层
下面是根据您的要求编写的Java代码。在这个示例中,我们创建了一个Book类,实现了Comparable接口来定义Book对象的比较规则,然后在SortSearchClass主类中使用ArrayList来存储Book对象,并演示了如何检查新创建的Book对象与ArrayList中的其他对象是否相等。

[/code]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());
        }
    }
}
[/code]

在这个示例中,我们创建了Book类,并实现了Comparable接口来定义Book对象的比较规则。然后在SortSearchClass主类中,我们使用ArrayList来存储Book对象,创建一个新的Book对象,并检查它与ArrayList中的其他对象是否相等。最后,我们对ArrayList中的Book对象按照价格进行排序,并输出排序后的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-3 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表