Java 外卖点餐系统菜品管理类 - Menu 实现
Java 外卖点餐系统菜品管理类 - Menu 实现
本文将介绍 Java 外卖点餐系统中菜品管理类的实现,名为 Menu 类,它负责管理系统中的菜品信息,并提供相应的操作方法。
代码实现
import java.util.*;
public class Menu {
private LinkedList<Dish> dishes; // 菜品列表
public Menu() {
this.dishes = new LinkedList<Dish>();
}
// 添加菜品
public void addDish(Dish dish) {
this.dishes.add(dish);
}
// 删除菜品
public void removeDish(Dish dish) {
this.dishes.remove(dish);
}
// 获取菜品列表
public LinkedList<Dish> getDishes() {
return this.dishes;
}
// 模糊查询
public LinkedList<Dish> selectByName(String name) {
LinkedList<Dish> result = new LinkedList<>();
for(Dish dish : this.dishes) {
if(dish.getName().contains(name)) {
result.add(dish);
}
}
return result;
}
// 价格范围查询
public LinkedList<Dish> selectByPrices(double low, double high) {
LinkedList<Dish> result = new LinkedList<>();
for (Dish dish : this.dishes) {
if (dish.getPrice() >= low && dish.getPrice() <= high) {
result.add(dish);
}
}
return result;
}
// 价格升序
public LinkedList<Dish> ascendingOrder() {
LinkedList<Dish> result = new LinkedList<>(this.dishes);
Collections.sort(result, (a, b) -> { //Lambda
return (int) a.getPrice() - (int) b.getPrice();
});
return result;
}
// 价格降序
public LinkedList<Dish> descendingOrder() {
LinkedList<Dish> result = new LinkedList<>(this.dishes);
Collections.sort(result, (a, b) -> {
return (int) b.getPrice() - (int) a.getPrice();
});
return result;
}
// 按精确名称查询
public Dish selectByExactName(String name) {
for (Dish dish : this.dishes) {
if (dish.getName().equals(name)) {
return dish;
}
}
return null;
}
}
代码原理与技术内容
这段代码主要用到了以下基本原理和技术内容:
- 数据结构: 代码使用了
LinkedList数据结构来存储菜品列表,并利用LinkedList的特性进行添加、删除、遍历等操作。 - 集合操作: 代码使用了
Collections类提供的sort()方法对菜品列表进行排序,并通过 Lambda 表达式定义排序规则。 - Lambda 表达式: 代码使用了 Java 8 中的 Lambda 表达式来简化排序操作的代码,提高代码可读性。
- 模糊查询和精确查询: 代码实现了
selectByName()和selectByExactName()方法,分别提供模糊查询和精确查询功能。 - 价格范围查询: 代码实现了
selectByPrices()方法,提供根据价格范围查询菜品的功 能。
总结
Menu 类提供了对菜品列表进行管理的完整功能,包括添加、删除、查询、排序等操作。代码充分利用了 LinkedList 数据结构和 Java 8 中的 Lambda 表达式,使代码简洁、易于理解。
原文地址: https://www.cveoy.top/t/topic/oWaB 著作权归作者所有。请勿转载和采集!