Hashmap JAVA中的Arraylist

时间:2018-12-04 16:34:32

标签: arraylist hashmap

我正在尝试预订应用程序。我有旅馆,顾客和书本类。每个客户都有一个唯一的号码,与Book相同,但是一个客户可以有0个或多个预订房间。 因为我开始学习Java,所以我开始使用HashMap的想法,在这种情况下这可能很有用。 在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并确保它是每个客户端的正确选择?

1 个答案:

答案 0 :(得分:0)

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

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