这个该怎么写 各位亲们帮帮我

img


这个我遇到了问题 第一次来这个平台可不可以让我看看你们的实力呀

参考如下:

  • 图书类
/**
 * 图书类
 * 
 * @author huazie
 * @version 2.0.0
 * @since 2.0.0
 */
public class Book {
    private String name; // 图书名称
    private double price; // 图书价格

    public Book(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}
  • 单元测试类
import java.util.Arrays;

/**
 * @author huazie
 * @version 2.0.0
 * @since 2.0.0
 */
public class Test {

    public static void main(String[] args) {
        Book[] books = new Book[5];
        books[0] = new Book("语文", 99.9);
        books[1] = new Book("数学", 89.9);
        books[2] = new Book("英语", 58.9);
        books[3] = new Book("物理", 79.9);
        books[4] = new Book("化学", 69.9);

        // 按价格降序排序
        Arrays.sort(books, (b1, b2) -> Double.compare(b2.getPrice(), b1.getPrice())); 

        for (Book book : books) {
            System.out.println(book);
        }

        // System.out.print(Arrays.toString(books));
    }
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7567578
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【超完全源码】我写了一个平台官网网站免费分享源码
  • 除此之外, 这篇博客: 如何设置线程池的大小?中的 一、线程池是每个程序员要掌握的一项技能,我们要如何去理解线程池呢,可以看下线程池是如何创建的。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  public ThreadPoolExecutor(int corePoolSize,
                                  int maximumPoolSize,
                                  long keepAliveTime,
                                  TimeUnit unit,
                                  BlockingQueue<Runnable> workQueue,
                                  ThreadFactory threadFactory,
                                  RejectedExecutionHandler handler) {
           
      }

    ThreadPoolExecutor 的构造函数中,有几个很重要的参数。

    • corePoolSize: 核心线程数量最大值
    • maximumPoolSize: 最大线程数量
    • keepAliveTime: 非核心线程存活时间
    • unit: keepAliveTime时间单位
    • workQueue:在任务执行之前用于保存任务的队列
    • threadFactory: 线程工厂可用于创建新线程
    • handler: 当达到线程界限和队列容量线程池的拒绝策略

         线程池的工作原理如下图所示:

         

    1.   当线程池小于 corePoolSize 时,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程。
    2.   当线程池达到 corePoolSize 时,新提交任务将被放入 workQueue 中,等待线程池中任务调度执行
    3.   当 workQueue 已满,且 maximumPoolSize > corePoolSize时,新提交任务会创建新线程执行任务
    4.   当提交任务数超过 maximumPoolSize 时,新提交任务由 RejectedExecutionHandler 处理
    5.   当线程池中超过 corePoolSize 线程,空闲时间达到 keepAliveTime 时,关闭空闲线程
    6.   当设置 allowCoreThreadTimeOut(true) 时,线程池中 corePoolSize 线程空闲时间达到 keepAliveTime 也将关闭
  • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 操作最后一个元素复杂度震荡问题的解决小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以尝试回答你的问题。首先需要更具体的信息,才能提供解决方案。请你详细描述你所遇到的困难以及相关背景信息,例如你面对的是软件问题还是硬件问题,你所使用的软件/硬件版本和运行环境,以及你已经采取的尝试和效果。这样我才能更好地帮助你解决问题。同时,我们平台上的专业技术人员都具备丰富的实力和经验,可以为你提供有效的解决方案。