arraylist - Hashmap JAVA 中的 Arraylist
问题描述
我正在尝试制作预订应用程序。我有酒店、客户和图书课程。每个客户都有一个唯一的编号,Book 也一样,但一个客户可以有 0 个或多个预订房间。我从使用 HashMap 的想法开始,因为我开始学习 Java,这在这种情况下可能很有用。在 Hotel 类中,HashMap 是这样初始化的:
private HashMap<Integer, ArrayList<Book>> hm
(关键是客户编号,值是 ArrayList,每个客户都可以预订多个房间,但每个 ArrayList 必须属于一个客户)
现在想预订一个房间,并将其放在 hashMap 上,但我被困住了,因为我不知道如何为这个特定的客户端初始化一个 ArrayList 并且不要在任何其他情况下使用。这就是我在我打算预订的功能内进入我的班级酒店。
Book b=new Book(new GregorianCalendar(2018,month,day),days);
System.out.println("Do you have a client number?(y/n");
if (sc.next().toLowerCase().equals("y")) {
System.out.println("Insert your client number");
int n =sc.nextInt();
for (Client c:this.clients) {
if (c.getCodC()==n) {
this.hm.put(c.getCod(),???)
我的问题是,如何创建和操作一个 ArrayList 并确保它适合每个客户?
解决方案
在最后一个 if 语句之后尝试以下代码:
List<Book> books = hm.get(n);
if(books== null) {
books = new ArrayList<>();
}
books.add(b);
hm.put(n, books);
推荐阅读
- python-3.x - 未找到 Lineticks 模块
- deep-learning - pytorch ImageFolder 数据大小与原始 imgs 编号不匹配?
- java - java stream().filter() 的最佳实践
- jquery - 带图像的引导时间轴
- ansible - ansible 是否允许基于主机的变量语法?
- verilog - Verilog 不计算线值
- rust-cargo - 关于 Cargo.toml 依赖项中的 toml 换行符
- jquery - 用于日历的 jQuery UI 可拖放和可拖动
- emulation - 6502 个指令时钟周期背后的逻辑是什么?
- androidx - 替换已弃用的 BrowseFragment AndroidTV