import java.util.*;
/**
* 1418. 点菜展示表
*
* 哈希Set 保存所有的餐品名称;
* 哈希表 保存桌号及该桌点餐数量,点餐数量也用一个哈希表保存。
*
*/
public class Solution1418 {
public List<List<String>> displayTable(List<List<String>> orders) {
// 菜品名称
Set<String> nameSet = new TreeSet<>();
// 每一桌点菜的名称与数目
Map<Integer, Map<String, Integer>> tableOrderMap = new TreeMap();
orders.forEach(list->{
nameSet.add(list.get(2));
Map<String, Integer> map = tableOrderMap.getOrDefault(Integer.valueOf(list.get(1)), new HashMap<>());
map.put(list.get(2), map.getOrDefault(list.get(2), 0) + 1);
tableOrderMap.put(Integer.valueOf(list.get(1)), map);
});
List<List<String>> resLists = new ArrayList<>();
// 加入菜名
List<String> menuList = new ArrayList<>();
menuList.add("Table");
menuList.addAll(nameSet);
resLists.add(menuList);
// 加入每一桌点菜种类
tableOrderMap.forEach((k,v)->{
List<String> orderList = new ArrayList<>();
orderList.add(String.valueOf(k));
for (String str : nameSet) {
orderList.add(String.valueOf(v.getOrDefault(str, 0)));
}
resLists.add(orderList);
});
return resLists;
}
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("David");
list1.add("3");
list1.add("Ceviche");
List<String> list2 = new ArrayList<>();
list2.add("Corina");
list2.add("10");
list2.add("Beef Burrito");
List<String> list3 = new ArrayList<>();
list3.add("David");
list3.add("3");
list3.add("Fried Chicken");
List<String> list4 = new ArrayList<>();
list4.add("Carla");
list4.add("5");
list4.add("Water");
List<String> list5 = new ArrayList<>();
list5.add("Carla");
list5.add("5");
list5.add("Ceviche");
List<String> list6 = new ArrayList<>();
list6.add("Rous");
list6.add("3");
list6.add("Ceviche");
List<List<String>> inList = new ArrayList<>();
inList.add(list1);
inList.add(list2);
inList.add(list3);
inList.add(list4);
inList.add(list5);
inList.add(list6);
Solution1418 solution1418 = new Solution1418();
solution1418.displayTable(inList);
}
}
LeetCode -- 1418. 点菜展示表
最新推荐文章于 2021-09-05 20:33:44 发布
这个Java程序实现了根据输入的订单列表,整理并显示每桌的点餐情况。通过使用哈希集存储菜品名,哈希表记录桌号及对应点菜数量,最终生成一个展示表格。示例中给出了不同顾客的点餐数据,程序能够正确处理并输出展示结果。
摘要由CSDN通过智能技术生成