题目要求

【1】将以下车站对应关系的数据存储到map集合中,
key:表示站编号,value:表示站名,
并遍历打印(可以不按顺序打印):

 站编号和站名对应关系如下:
1 朱辛庄
2 育知路
3 平西府
4 回龙观东大街
5 霍营
6 育新
7 西小口
8 永泰庄
9 林萃桥
10 森林公园南门
11 奥林匹克公园
12 奥体中心
13 北土城
14 安华桥
15 安德里北街
16 鼓楼大街
17 什刹海
18 南锣鼓巷
19 中国美术馆
计算地铁票价规则:

总行程 3站内(包含3站)收费3元,
3站以上但不超过5站(包含5站)的收费4元,
5站以上的,在4元的基础上,每多1站增加2元,
10元封顶
需要对键盘录入的上车站
和到达站进行判断,如果没有该站,
提示重新输入,直到站名存在为止
每站需要2分钟


需要提供的方法

1.遍历Map(有两种方式——用keySe或者用entrySet)
2.需要调用Mao的获取方法——containsValue(验证是否存在)
3.计算该站的序号时,先获取Value,利用其get(key)来调用序号的具体值

具体代码实现(有注释)

import javax.management.openmbean.CompositeType;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.concurrent.ForkJoinPool;public class Demo07 {public static void main(String[] args) {HashMap<Integer, String> hm = new HashMap<Integer, String>();hm.put(1, "朱辛庄");hm.put(2, "育知路");hm.put(3, "平西府");hm.put(4, "回龙观东大街");hm.put(5, "霍营");hm.put(6, "育新");hm.put(7, "西小口");hm.put(8, "永泰庄");hm.put(9, "林萃桥");hm.put(10, "森林公园南门");hm.put(11, "奥林匹克公园");hm.put(12, "奥体中心");hm.put(13, "北土城");hm.put(14, "安华桥");hm.put(15, "安德里北街");hm.put(16, "鼓楼大街");hm.put(17, "什刹海");hm.put(18, "南锣鼓巷");hm.put(19, "中国美术馆 ");System.out.println("-车站信息-");//遍历车站System.out.println("(序号)+(站名)");//利用Map的两种遍历方式://方式一:Set<Integer> keySet = hm.keySet();for (Integer key : keySet) {String value = hm.get(key);System.out.println(key + "," + value);}//方式二:
//        Set<Map.Entry<Integer, String>> entrySet = hm.entrySet();
//        for(Map.Entry<Integer, String> me:entrySet){//            Integer key = me.getKey();
//            String value = me.getValue();
//            System.out.println(key+","+value);
//        }//创建初始值(先建类型,在确定车站时在确定具体的值,为了便于后面获取车站的序号)Scanner sc = new Scanner(System.in);String start;String end;//上车站的确定while (true) {System.out.println("请输入上车站");start = sc.nextLine();if (hm.containsValue(start)) {System.out.println("输入成功");break;} else {System.out.println("该站不存在,请重新输入");}}//下车站的确定while (true) {System.out.println("请输入下车站");end = sc.next();if (hm.containsValue(end)) {System.out.println("输入成功");break;} else {System.out.println("该站不存在,请重新输入");}}//建立值int startNumber = 0;int endNumber=0;int middle=0;//上车站点的序号Set<Integer> keySet1 = hm.keySet();for(Integer key1:keySet){if(start.equals(hm.get(key1))){startNumber=key1;}if(end.equals(hm.get(key1))){endNumber=key1;}}//简化版(只可从序号小的站点出发)——后续可改良if(startNumber>endNumber){middle=startNumber-endNumber;}else {middle= endNumber-startNumber;}//计算票价
//        计算地铁票价规则:
//        总行程 3站内(包含3站)收费3元,
//        3站以上但不超过5站(包含5站)的收费4元,
//        5站以上的,在4元的基础上,每多1站增加2元,
//        10元封顶;int money=0;if(middle<=3){money=3;}else  if(middle>3&&middle<=5){money=4;}else  if(middle>=5){money=4+(endNumber-5)*2;}money=money>10?10:money;int time=middle*2;System.out.println("从"+start+"站到"+end+"站需要"+money+"的钱,需要"+time+"分钟");}
}

Map集合练习题(坐公交车)相关推荐

  1. Java中如何取出Map集合中的元素

    Java的Map集合中没有迭代器,需要将其转换为set集合 /*map集合的两种取出方式:1,SetkeySet:将map中所有的键存入到Set集合.因为set具备迭代器. 所有可以迭代方式取出所有的 ...

  2. Map集合及其遍历案例:车站Demo

    项目开始: ​ 昨天的Java学习到了Map集合,有一个公交线路的Demo,在编程过程中出现了一些问题,写篇博客记录一下.这个项目的需求是实现输入上车站和下车站,预估车程耗时并输出车费. 项目分析与实 ...

  3. Java中的Map集合遍历总结(详尽版)

    因为Map集合中的键值对排列无序,所以不能用传统的for循环来遍历,只能使用加强循环(for-each)和迭代器进行遍历. 让我们通过例子来了解Map集合的遍历: package gather; im ...

  4. 安卓取map集合转换为json_android json解析成map格式

    "discount": { "3": "34", "4": "33", "5": ...

  5. Map集合中value()方法与keySet()、entrySet()区别 ——转载

    为什么80%的码农都做不了架构师?>>>    在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet(): 将Map中所有的键存入 ...

  6. java map 队列_Java:queue队列,map集合

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.Lin ...

  7. 8.Map集合(HashMapTreeMap)

    一.Map集合概述和使用 1.Map集合概述 Interface Map<K,V> K:键的类型 V:值的类型 将键映射到值的对象:不能包含重复的键:每个键可以映射到最多一个值 创建Map ...

  8. Map集合练习之对字符串中字母出现的次数求和

    代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhouls.bigdata. ...

  9. 【mybatis】mybatis中 返回map集合

    关于mybatis返回map集合的操作: 1.mapper.xml中写一个查询返回map的sql <select id="findMap" parameterType=&qu ...

最新文章

  1. 1.9 GRU 单元-深度学习第五课《序列模型》-Stanford吴恩达教授
  2. Acwing第 21 场周赛【完结】
  3. 如何使用schematics快速创建全新的SAP Spartacus Storefront并启用SSR
  4. 如何在跑cts的时候生成log_为什么要买奥铃CTS?听听用户的评价
  5. Abp小试牛刀之 图片上传
  6. C语言的10大基础算法
  7. HDMI光端机是什么?hdmi光端机产品参数及性能特点介绍
  8. C#实现浮动和多标签窗体解决方案---使用Dockpanel
  9. [Ext JS]5.8 Group Grid-分组网格
  10. S5PV210体系结构与接口08:定时器 计数器编程
  11. android绘制矢量图_Android矢量可绘制
  12. Android之输入银行卡号判断属于哪个银行
  13. 个人电脑完整重装WINDOWN XP 详解--博主推荐
  14. 比特大陆60天 :夺权、立威下的疯狂裁员
  15. TapTap实习三个月总结
  16. Python网页编程(CGI)
  17. ESP32-C3 SPI salve示例错误
  18. 专访递归神经网络之父:AI下一轮革命核心是“人工好奇心”
  19. 前三十年看父敬子,后三十年看子敬父
  20. 台式计算机使用寿命,台式机主机一般寿命是多久?

热门文章

  1. inc si指令的作用_8086指令
  2. [QMT]01-我的第一个Python策略
  3. 如何在字符串中加双引号
  4. 摄像头P2P软件提供,完美解决打洞及音视频、用户码传输问题。
  5. 数据结构实验报告:图的基本操作及应用
  6. 合同法中的违约责任如何确定的 ?
  7. 2018 AFCTF 可怜的RSA
  8. CC防御过程中,WAF的主要特点有哪些?
  9. 如何解决蓝牙耳机总是声音断断续续的?
  10. KVM虚拟化技术的-虚拟机配置文件