1. package cn.good.com;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import java.util.Set;
  7.  
  8. /*
  9. * 一、 Map 接口?
  10. *
  11. * 1.map接口中 键和值----叫做映射。
  12. * 2.给定一个键,一个值。存储在Map对象之后,通过键来获取!键不可以重复。值可以重复1
  13. * 3.访问的值不存在,抛出异常NoSuchElementException异常!
  14. * 4.当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。
  15. 5.当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。
  16. 6.当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。
  17. *
  18. * 二、常用的集合
  19. *
  20. * 1.HashMap---------【哈希表的存储结构,但是无法存取顺序】---- Map map01=new HashMap(); 无序 就是没有角标的 不要从0开始算!
  21. * 2.LinKedHashMap---【哈希表和链表,可以有序】----------------Map map02=new LinKedHashMap();
  22. *
  23. * 三、方法
  24. *
  25. * 1.put("a",1) 将键值存储到集合中 夫妻关系?
  26. * 2.get() 通过键获取值 没有的话返回-----[null]
  27. * 3.remove() 移除集合中的键值对
  28. *
  29. * 四、Map接口怎么便利?
  30. *
  31. * 1.迭代
  32. * for (Iterator it = map03.keySet().iterator(); it.hasNext();) {
  33. String type = (String) it.next();
  34. Object value=(Object)map03.get(type);
  35. System.out.println(type+"<====> "+value);
  36. }
  37. * 2.for循环增强!
  38. * for(String key:map03.keySet()){------------------>【注意!】使用for增强时 map03 哪里不能省略 <String,Object> 否则会报错!
  39.  
  40. Object a1=map03.get(key);
  41. System.out.println(key+" "+a1);
  42. }
  43. *
  44. *
  45. */
  46. public class MapDemo01 {
  47. public static void main(String[] args) {
  48. map();
  49. }
  50. //map 嵌套map
  51. public static void map(){
  52. //一班
  53. Map map01=new HashMap();
  54. map01.put(001, "张三");
  55. map01.put(002, "李四");
  56. map01.put(003, "王五");
  57. map01.put(004, "李四");
  58. map01.put(005, "王五");
  59.  
  60. //二班
  61. Map map02=new HashMap();
  62. map02.put(004, "熊大");
  63. map02.put(005, "熊二");
  64. map02.put(006, "熊三");
  65.  
  66. //定义容器 key是班级名字,值是两个班级的容器
  67. Map<String,Object> map03=new HashMap();
  68. map03.put("一班", map01);
  69. map03.put("二班", map02);
  70.  
  71. Object a=map01.remove(002); //删除2号元素
  72.  
  73. for (Iterator it = map01.keySet().iterator(); it.hasNext();) { //迭代便利输出!
  74. Integer type = (Integer) it.next(); //键值是int 类型 集合里面放的是引用数据类型 int<--->integer
  75. System.out.println(map01.get(type));
  76.  
  77. }
  78. System.out.println("===========");
  79.  
  80. /* for (int i=0;i<=map01.size();i++) {
  81.  
  82. System.out.println(map01.get(i));
  83. }
  84. */
  85. //增强for循环 实现Map 接口便利!
  86. for(String key:map03.keySet()){
  87.  
  88. Object a1=map03.get(key);
  89. System.out.println(key+" "+a1);
  90. }
  91.  
  92. //迭代获取对象元素!
  93. /* for (Iterator it = map03.keySet().iterator(); it.hasNext();) {
  94. String type = (String) it.next();
  95. Object value=(Object)map03.get(type);
  96. System.out.println(type+"<====> "+value);
  97.  
  98. }*/
  99. }
  100.  
  101. }

Map接口----Map中嵌套Map的更多相关文章

  1. js中map和python中的map

    js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow( ...

  2. Java中的集合(七)双列集合顶层接口------Map接口架构

    Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...

  3. Java学习(Map接口)

    一.概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. 1. Collection中的集合,元素是孤立存在的(理解为单身), ...

  4. Java集合框架之Map接口浅析

    Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...

  5. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  6. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

  7. 【Java入门提高篇】Day19 Java容器类详解(二)Map接口

    上一篇里介绍了容器家族里的大族长——Collection接口,今天来看看容器家族里的二族长——Map接口. Map也是容器家族的一个大分支,但里面的元素都是以键值对(key-value)的形式存放的, ...

  8. Java:集合,Map接口框架图

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  9. 集合之六:Map接口

    Map接口概述 Map接口中的集合和Collection接口中的集合在存储数据的格式上有很大的不同,Map接口下的内容是以<K , V> ,键值对的形式存储的,我们查询API,Map接口的 ...

随机推荐

  1. SSH远程SOLARIS11时被拒绝

    在虚拟机中新安装的solaris11,安装过程中配置了静态IP地址用以方便ssh连接,使用root用户ssh连接时,密码没有错,但总是提示密码被拒绝,连接established 代表是通的,telne ...

  2. P2251 质量检测--洛谷luogu

    传送门 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及 ...

  3. BZOJ 5467 Slay the Spire

    BZOJ 5467 Slay the Spire 我的概率基础也太差了.jpg 大概就是这样,因为强化牌至少翻倍,所以打出的牌必定是全部的强化牌或者$k-1$个强化牌,然后剩余的机会打出最大的几个攻击 ...

  4. Maven的porfile与SpringBoot的profile结合使用详解

        使用maven的profile功能,我们可以实现多环境配置文件的动态切换,可参考我的上一篇博客.但随着SpringBoot项目越来越火,越来越多人喜欢用SpringBoot的profile功能 ...

  5. Objective-C Programming The Big Nerd Ranch Guide 笔记 19-37

    Properties are either atomic or nonatomic, The difference has to do with multithreading. atomic is t ...

  6. js、jquery实现放大镜效果

    在一些电商网站的商品详情页面,都会有放大镜效果,实现起来并不是很困难,今天用了两个小时,写了一个放大镜效果的实例,来分享给大家! 实现的效果大概是这个样子的 预览 先来看一下效果吧,点击下面的链接预览 ...

  7. Random()种子数

    Random rand =new Random(25); int i; i=rand.nextInt(100); 初始化时25并没有起直接作用,rand.nextInt(100);中的100是随机数的 ...

  8. 通过设置线程池的最小线程数来提高task的效率,SetMinThreads。

    http://www.cnblogs.com/Charltsing/p/taskpoolthread.html task默认对线程的调度是逐步增加的,连续多次运行并发线程,会提高占用的线程数,而等若干 ...

  9. hadoop和java 配置环境变量的的tar

    第一步:打开工具上传tar包 如下图 第二步:在文件路径下查看是否上传成功 第三步:解压tar包               tar -zxvf hadoop.2.6.5.tar.gz 第四步:配置环 ...

  10. Golang的类型断言

    类型断言即判断一个变量是不是某个类型的实例,这个经常用在判断接口的类型,基本的格式: y, ok := x.(type) 上面的语句用于判断变量x是不是type类型,有两种结果: x是type类型的变 ...