Java计算四家店手机的最低价格

在这篇文章中,我们将一起学习如何使用Java来计算四家店手机的最低价格。这个问题实际上可以分为几个步骤来进行解决。下面,我们将建立一个清晰的流程并逐步实现代码。

整体流程

以下是实现这一目标的步骤:

步骤 描述
1 创建一个 Phone 类来表示手机
2 创建一个 Shop 类来表示商店
3 设置销量和价格
4 实现计算最低价格的函数
5 main 方法中测试函数

步骤详解

步骤 1:创建一个 Phone

这个类用来表示手机的基本属性,例如型号和价格。

public class Phone {
    private String model; // 手机型号
    private double price; // 手机价格

    // 构造函数
    public Phone(String model, double price) {
        this.model = model;
        this.price = price;
    }

    // 获取手机型号
    public String getModel() {
        return model;
    }

    // 获取手机价格
    public double getPrice() {
        return price;
    }
}

步骤 2:创建一个 Shop

这个类用来表示商店以及它所售卖的手机列表。

import java.util.ArrayList;
import java.util.List;

public class Shop {
    private String name; // 店名
    private List<Phone> phones; // 手机列表

    // 构造函数
    public Shop(String name) {
        this.name = name;
        this.phones = new ArrayList<>();
    }

    // 添加手机到商店
    public void addPhone(Phone phone) {
        phones.add(phone);
    }

    // 获取所有手机
    public List<Phone> getPhones() {
        return phones;
    }
}

步骤 3:设置价格

现在,我们可以创建四个商店,并为每个商店添加手机及其价格。

public class Main {
    public static void main(String[] args) {
        // 创建商店
        Shop shop1 = new Shop("Shop 1");
        Shop shop2 = new Shop("Shop 2");
        Shop shop3 = new Shop("Shop 3");
        Shop shop4 = new Shop("Shop 4");

        // 添加手机和价格
        shop1.addPhone(new Phone("Phone A", 500));
        shop1.addPhone(new Phone("Phone B", 600));
        
        shop2.addPhone(new Phone("Phone A", 450));
        shop2.addPhone(new Phone("Phone C", 550));
        
        shop3.addPhone(new Phone("Phone B", 620));
        shop3.addPhone(new Phone("Phone D", 700));
        
        shop4.addPhone(new Phone("Phone A", 490));
        shop4.addPhone(new Phone("Phone C", 580));
    }
}

步骤 4:实现计算最低价格的函数

我们需要一个函数来遍历所有商店,寻找某种特定手机的最低价格。

public static double findLowestPrice(String model, List<Shop> shops) {
    double lowestPrice = Double.MAX_VALUE; // 初始最低价格设为最大值
    for (Shop shop : shops) {
        for (Phone phone : shop.getPhones()) {
            if (phone.getModel().equals(model) && phone.getPrice() < lowestPrice) {
                lowestPrice = phone.getPrice(); // 更新最低价格
            }
        }
    }
    return lowestPrice == Double.MAX_VALUE ? -1 : lowestPrice; // 如果没有找到,返回-1
}

步骤 5:测试功能

将所有步骤结合在一起进行测试,以查看每种手机的最低价格。

public static void main(String[] args) {
    // 创建商店及手机
    
    // ...(上面创建商店的代码)

    // 创建商店列表
    List<Shop> shops = new ArrayList<>();
    shops.add(shop1);
    shops.add(shop2);
    shops.add(shop3);
    shops.add(shop4);

    // 计算并输出每种手机的最低价格
    System.out.println("Phone A最低价格: " + findLowestPrice("Phone A", shops));
    System.out.println("Phone B最低价格: " + findLowestPrice("Phone B", shops));
    System.out.println("Phone C最低价格: " + findLowestPrice("Phone C", shops));
    System.out.println("Phone D最低价格: " + findLowestPrice("Phone D", shops));
}

类图

使用Mermaid语法来表示我们的类图:

classDiagram
    class Phone {
        +String model
        +double price
        +getModel()
        +getPrice()
    }
    class Shop {
        +String name
        +List<Phone> phones
        +addPhone(Phone phone)
        +getPhones()
    }

关系图

下面是我们数据的关系模型(ER图),描述不同商店与手机之间的关系。

erDiagram
    SHOP {
        string name
    }
    PHONE {
        string model
        double price
    }
    SHOP ||--o{ PHONE : sells

结尾

通过这个简单的项目,你不仅学习了如何在Java中创建类和对象,还学会了如何遍历集合并实现基本的业务逻辑。我们从创建类开始,逐步实现完整的功能,最终达到计算四家店中手机的最低价格。希望这篇文章能够帮助你在Java编程上更进一步!如果有任何问题,请随时进行探索和提问。