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和CollectionsLinkedList用于存储菜品列表,并提供链表相关的操作。Collections提供了对集合进行排序等操作的方法。
-
Lambda 表达式: 用于对菜品列表进行排序操作。
-
模糊查询和范围查询: 通过遍历菜品列表,根据条件筛选出符合要求的菜品。
- 模糊查询: 使用
contains方法判断菜品名称是否包含查询关键词。 - 范围查询: 使用
>=和<=运算符判断菜品价格是否在指定的范围内。
- 模糊查询: 使用
-
封装: 将菜品列表封装在
Menu类中,并通过方法对其进行操作和查询,提高代码的可维护性和可重用性。
总结
Menu 类提供了一种简单的菜品管理方式,涵盖了常见的菜品操作功能。通过使用集合类、Lambda 表达式等技术,可以方便地实现菜品的添加、删除、获取、查询和排序等操作。
原文地址: https://www.cveoy.top/t/topic/oWax 著作权归作者所有。请勿转载和采集!