• Map接口


    Map接口


    概述

    ​ 用来存储键值对,如果键值相同,后边的value将前边的value覆盖

    主要实现类:

    HashMap:底层实现哈希表,查询快,添加快,无序

    ​   key:无序,唯一,即HashSet(HashSet的底层即HashMap,HashSet只使用了HashMap键部分,值部分为一个空对象)

    ​   value:无序,不唯一,Collection

    LinkedHashMap:底层结构哈希表+链表,查询快,添加快,有序(添加顺序)

    ​   key:有序(添加顺序),唯一,LinkedHashSet

    ​   value:无序,不唯一,Collection

    TreeMap:底层实现红黑树,速度介于哈希表和线性表之间,有序(自然顺序)

    ​   key:有序(自然顺序)唯一,类似TreeSet

    ​   value:无序,不唯一,Collection

    对Map的遍历:

    • Map中元素,可以将key序列、value序列单独抽取出来

    ​   抽取key:使用keySet()抽取key序列,将map中的所有keys生成一个Set。

    ​   抽取value:使用values()抽取value序列,将map中的所有values生成一个Collection。

    • 两种遍历方式:

      ​ 1)先得到由所有的key组成的set,遍历set的过程中,根据每个key得到所有的value。

      ​ 测试代码:

      //得到key的集合
      Set<String> keySet = map.keySet();   
      
      //增强for循环遍历set,根据key得到value
      for(String key : keySet) {
          System.out.println(map.get(key));
      }
      
      //迭代器遍历set,根据key得到value
      Iterator<String> it =  keySet.iterator();
      while(it.hasNext()) {
          System.out.println(map.get(it.next()));
      }
      

      ​ 2)先得到所有的由key-value组成的set,遍历set的过程中,输出每个元素(key-value)的内容。

      //得到key-value的集合,遍历set
      //通过Entry对key-value进行封装,Entry为Map的一个内部集合
      Set<Entry<String, String>> entrySet = map.entrySet();
      Iterator<Entry<String, String>> itt = entrySet.iterator();
      
      //迭代器
      while(itt.hasNext()) {
          Entry<String, String> entry = itt.next();
          System.out.println(entry.getKey() + "is" + entry.getValue());
      }
      
      //增强的for循环
      for(Entry<String, String> entry : entrySet) {
          System.out.println(entry.getKey() + "ai" + entry.getValue());
      }
      

    注意:

    ​   在Map中没有迭代器

  • 相关阅读:
    StackView
    横竖屏
    Html
    UILabel
    NSString
    NSPredicate|谓词
    iphone
    函数
    UIBezierPath
    UICollectionView
  • 原文地址:https://www.cnblogs.com/zcxhaha/p/10076412.html
Copyright © 2020-2023  润新知