首页 > 解决方案 > 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 并确保它适合每个客户?

标签: arraylisthashmap

解决方案


在最后一个 if 语句之后尝试以下代码:

    List<Book> books = hm.get(n);
    if(books== null) {
        books = new ArrayList<>();
    }
    books.add(b);
    hm.put(n, books);

推荐阅读