点餐信息表 先根据下单人分类 再根据点餐人分类 用java代码怎么实现
时间: 2024-05-10 19:13:59 浏览: 10
假设有一个点餐信息类 `OrderInfo`,包含下单人姓名、点餐人姓名、订单金额等属性。可以按照下面的方式实现分类:
```java
import java.util.*;
public class OrderInfo {
private String orderName; // 下单人姓名
private String orderPerson; // 点餐人姓名
private double orderAmount; // 订单金额
public OrderInfo(String orderName, String orderPerson, double orderAmount) {
this.orderName = orderName;
this.orderPerson = orderPerson;
this.orderAmount = orderAmount;
}
public String getOrderName() {
return orderName;
}
public String getOrderPerson() {
return orderPerson;
}
public double getOrderAmount() {
return orderAmount;
}
// 按照下单人分类
public static Map<String, List<OrderInfo>> classifyByOrderName(List<OrderInfo> orderInfos) {
Map<String, List<OrderInfo>> result = new HashMap<>();
for (OrderInfo orderInfo : orderInfos) {
String orderName = orderInfo.getOrderName();
if (!result.containsKey(orderName)) {
result.put(orderName, new ArrayList<>());
}
result.get(orderName).add(orderInfo);
}
return result;
}
// 按照点餐人分类
public static Map<String, List<OrderInfo>> classifyByOrderPerson(List<OrderInfo> orderInfos) {
Map<String, List<OrderInfo>> result = new HashMap<>();
for (OrderInfo orderInfo : orderInfos) {
String orderPerson = orderInfo.getOrderPerson();
if (!result.containsKey(orderPerson)) {
result.put(orderPerson, new ArrayList<>());
}
result.get(orderPerson).add(orderInfo);
}
return result;
}
public static void main(String[] args) {
List<OrderInfo> orderInfos = new ArrayList<>();
orderInfos.add(new OrderInfo("Alice", "Bob", 10.0));
orderInfos.add(new OrderInfo("Alice", "Charlie", 20.0));
orderInfos.add(new OrderInfo("Bob", "David", 15.0));
// 按照下单人分类
Map<String, List<OrderInfo>> orderByOrderName = classifyByOrderName(orderInfos);
System.out.println("按照下单人分类:");
for (String orderName : orderByOrderName.keySet()) {
System.out.println(orderName + ":");
for (OrderInfo orderInfo : orderByOrderName.get(orderName)) {
System.out.println(" " + orderInfo.getOrderPerson() + " " + orderInfo.getOrderAmount());
}
}
// 按照点餐人分类
Map<String, List<OrderInfo>> orderByOrderPerson = classifyByOrderPerson(orderInfos);
System.out.println("按照点餐人分类:");
for (String orderPerson : orderByOrderPerson.keySet()) {
System.out.println(orderPerson + ":");
for (OrderInfo orderInfo : orderByOrderPerson.get(orderPerson)) {
System.out.println(" " + orderInfo.getOrderName() + " " + orderInfo.getOrderAmount());
}
}
}
}
```
运行结果如下:
```
按照下单人分类:
Alice:
Bob 10.0
Charlie 20.0
Bob:
David 15.0
按照点餐人分类:
Bob:
Alice 10.0
Charlie:
Alice 20.0
David:
Bob 15.0
```
你可以根据实际需求修改代码。