鱼C论坛

 找回密码
 立即注册
查看: 604|回复: 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
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);
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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);
    }
}
想知道小甲鱼最近在做啥?请访问 -> 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对象按照价格进行排序,并输出排序后的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-31 03:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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