一、创建一个酒店的房间管理系统

需求:这个酒店有五层,并且1-2层是标准间,3-4层是双人间,5层是豪华间;我们需要实时的显现各个房间的使用状态,并且我们可以预定某一个房间。

package com.bjpowernode.java_learning;

​

import java.util.Scanner;

​

public class D87_1_ {

  public static void main(String[] args) {

    Scanner s = new Scanner(System.in);

    Hotel87 h = new Hotel87();

    h.print();

    while (s.hasNext()) {

      System.out.println("请输入您要预定的房间");

      String number = s.next();

      h.order(number);

      h.print();

    }

  }

}

class Room87{

  private String no;

  private String type;//标准间、双人间、豪华间

  private boolean isUse;//false表示空间,true表示占用

  /**

   * @param no

   * @param type

   * @param isUse

   */

  Room87(String no, String type, boolean isUse) {

    super();

    this.no = no;

    this.type = type;

    this.isUse = isUse;

  }

  public String getNo() {

    return no;

  }

  public void setNo(String no) {

    this.no = no;

  }

  public String getType() {

    return type;

  }

  public void setType(String type) {

    this.type = type;

  }

  public boolean isUse() {

    return isUse;

  }

  public void setUse(boolean isUse) {

    this.isUse = isUse;

  }

  public String toString() {

    return "{" + no +"," +(isUse?"占用":"空间") + "}";

  }

}

class Hotel87 {

  //房间

  Room87[][] rooms;

  //Constructer

  Hotel87(){

    //五层 每层十间

    rooms = new Room87[5][10];

    //赋值

    //1,2标准间

    //3,4双人间

    //5 豪华间

    for(int i=0;i<rooms.length;i++) {

      for(int j=0;j<rooms[i].length;j++) {

        if (i==0 || i==1) {

          rooms[i][j] = new Room87((i+1)*100+j+"","标准间",false);

        }

        if (i==2 || i==3) {

          rooms[i][j] = new Room87((i+1)*100+j+"","双人间",false);

        }

        if (i==4) {

          rooms[i][j] = new Room87((i+1)*100+j+"","豪华间",false);

        }

​

      }

    }

  }

  //对外提供一个打印酒店房间列表的方法

  public void print() {

    for(int i=0;i<rooms.length;i++) {

      for(int j=0;j<rooms[i].length;j++) {

        System.out.print(rooms[i][j] + " ");;

      }

      System.out.println();

    }

  }

  public void order(String no) {

    for(int i=0;i<rooms.length;i++) {

      for(int j=0;j<rooms[i].length;j++) {

        if(rooms[i][j].getNo().equals(no)) {

          //将该房间改为占用

          rooms[i][j].setUse(true);

          return;

        }

      }

    }

  }

}

二、HashSet

1.HashSet是set的一个实现类;

2.HashSet底层是一个HashMap;

3.哈希表是什么

三、源码:

D87_1_HotelManageSystem.java

D87_2_HashSet.java

https://github.com/ruigege66/Java/blob/master/D87_1_HotelManageSystem.java

https://github.com/ruigege66/Java/blob/master/D87_2_HashSet.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载87-酒店管理系统练习、哈希表、函数的更多相关文章

  1. Java swing实现酒店管理系统

    今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...

  2. Java知多少(79)哈希表及其应用

    哈希表也称为散列表,是用来存储群体对象的集合类结构. 什么是哈希表 数组和向量都可以存储对象,但对象的存储位置是随机的,也就是说对象本身与其存储位置之间没有必然的联系.当要查找一个对象时,只能以某种顺 ...

  3. java数据结构和算法09(哈希表)

    树的结构说得差不多了,现在我们来说说一种数据结构叫做哈希表(hash table),哈希表有是干什么用的呢?我们知道树的操作的时间复杂度通常为O(logN),那有没有更快的数据结构?当然有,那就是哈希 ...

  4. 源码:Java集合源码之:哈希表(二)

    要想知道一个元素是否在数组或链表中,只能从前向后挨个对比,无论是数组还是链表,其对数据的查询表现都比较无力.在的二叉排序树中,还会将数据排序以进行二分查找,将时间复杂度从O(n)降低到O(lg n). ...

  5. 【编程学习】浅谈哈希表及用C语言构建哈希表!

    哈希表:通过key-value而直接进行访问的数据结构,不用经过关键值间的比较,从而省去了大量处理时间. 哈希函数:选择的最主要考虑因素--尽可能避免冲突的出现 构造哈希函数的原则是: ①函数本身便于 ...

  6. Java编写ArrayBasic制作一个简单的酒店管理系统

    听老师讲了一些ArrayBasic的一些知识,让制作一个酒店管理系统,要求:显示酒店所有房间列表,预订房间.... 经过老师的指导写了一个代码,如下: import java.util.Scanner ...

  7. java简单学生成绩管理系统

    题目要求: 一. 数据结构要求:(5 分) 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishi ...

  8. Java连载69-接受输入、用数组模拟栈

    一.编写一个酒店管理系统 1.直接上代码 package com.bjpowernode.java_learning; ​ public class D69_1_ { //编写一个程序模拟酒店的管理系 ...

  9. 实用干货!Java开发企业级权限管理系统视频教程

    全程手把手带你运用Java技术栈,打造一套基于最流行的RBAC拓展模型的,分布式的,有界面的,高灵活性,高拓展性的企业级权限管理系统.学完本课程你将可以轻松应对绝大多数企业开发中与权限管理及后台系统相 ...

随机推荐

  1. Servlet乱码问题解决

    对于请求参数的编码处理基本上分为get和post两种情况. 1.POST index.html <!DOCTYPE html> <head> <meta http-equ ...

  2. Affinity Propagation

    1. 调用方法: AffinityPropagation(damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=N ...

  3. 大牛给的ACM进阶建议

    转:https://blog.csdn.net/mmy1996/article/details/56011084 来自知乎 在他后面的回答中发现 不用IDE ,修炼内功挺好的,不过他和我的以前的那种 ...

  4. [Python]获取win平台文件的详细信息

    import win32api def getFileProperties(fname): """ 读取给定文件的所有属性, 返回一个字典. ""&q ...

  5. POJ_1485_dp

    题目描述: 每组数据给n个点,点按一维坐标升序给出,要求划分成k块,在每一块中,取一个站,要求每个块中所有的点到站的距离的和的总和最小. 思路: dp题,dp[i][j]表示i个点分成j块的最小距离, ...

  6. 高软期末考试 B2C模式

    一.软件工程知识点 简要总结 1.软件基础知识 瀑布模型: 我感觉整个<软件工程>书的布局就是按照瀑布模型来的,上面右图少个运维. 2.UML图 2.1 用例图 UseCase Diagr ...

  7. DD boost你值得拥有

    也不知道什么时候就被赶到这条路上来了,只听领导的一声令下,备份啊能不能在异地也存一份呀?? 啊?? 领导语重心长的说你看啊,我们这个备份是这个样子的 现在的南京的两个工厂备份要在对方留一份备份的存档, ...

  8. 小程序云开发--内容安全审查API云调用

    云调用 云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用. 接口方法 openapi.security.msgSecCheck 需在 ...

  9. 关于django.conf.urls的路由匹配问题

    1. 问题 目前自己在写一个网站,但是在后端写好api前端请求的时候,无论如何都请求不到对应的python函数上去,于是自己就把对应的url名修改之后就可以了,具体如下: ## 出现问题的代码 fro ...

  10. 给Hangfire的webjob增加callback和动态判断返回结果功能设计

    背景介绍 通常业务中需要用到定时执行功能,我用hangfire搭建了一个调度服务,这个调度服务是独立于业务逻辑的,具体可以参考文章:https://github.com/yuzd/Hangfire.H ...