Arrays&Lambda&JDK8新特性

题目1:使用 Arrays 对对象数组排序(Comparator 与 Lambda)

需求:

定义一个 Product 类,包含属性:name(String)、price(double)。创建包含 4 个产品的数组。

  1. 使用 Arrays.sort 结合匿名内部类 Comparator 按价格升序排序。

  2. 使用 Lambda 表达式简化上述排序。

  3. 输出排序后的结果。

要求:

  • Product 类需提供构造方法、getter/setter 和 toString

  • 展示两种排序写法,并说明输出。

java 复制代码
package com.study.test;

public class Product {
    private String name;
    private Double price;

    public Product() {
    }

    public Product(String name, Double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Product{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

}
java 复制代码
public class Test {
    public static void main(String[] args) {
        Product[] products = new Product[4];
        products[0] = new Product("手机", 2999.0);
        products[1] = new Product("电脑", 5999.0);
        products[2] = new Product("耳机", 399.0);
        products[3] = new Product("鼠标", 89.0);

        System.out.println("排序前:"+Arrays.toString(products));

        Arrays.sort(products, new Comparator<Product>() {
            @Override
            public int compare(Product p1, Product p2) {
                return Double.compare(p1.getPrice(), p2.getPrice());
            }
        });
        System.out.println("匿名内部类方式:"+Arrays.toString(products));

        Arrays.sort(products,( o1,  o2) -> Double.compare(o1.getPrice(),o2.getPrice()));
        System.out.println("Lambda表达式升序:"+Arrays.toString(products));
    }
}
相关推荐
咖啡八杯2 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔3 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔5 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
CRMEB系统商城6 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience7 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
weixin_408099677 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能