Map

  • 地图,和实际地点有映射关系
  • 内置对象Entry,包含两个元素
  • 单项一对一的关系
  • 大词典,可以根据相应的键来找到值
  • 方法
    • Object put(Oject key,Object value)
    • Object remove(Object key)
    • void putAll(Map t)
    • void clear()
    • Ojbect get(Object key) //查词典
    • boolean containsKey(Object value)
    • Set getSet();
    • Collection values()
    • set entrySet()
    • 更多方法参考api文档。
  • 实现子类
    • HashMap
      • 哈希算法实现,和treeSet有相似之出
        • 使用哈希算法来计算地址偏移量,偏移到具体的地址,若无数据,则添加,若有数据,则构建红黑树,若当数据达到数组的3/4的时候进行扩容,所有map里的元素重新排列分布,当内存充裕的时候可极大提高效率
      • Hashtalbe 较老的的版本,效率较低
      • Properties 类,管理配置文件
        • 属性key和value都是string
        • 一般用于配置文件
        • getProperties(key)
    • TreeMap
      • 键值实现自然排序,所有前提是key必须是可比对象。(和treeset不同的是treeset可以通过传入的自定义比较器,来让对象可比,treemap不具此特性)
    • LinkedMap
  • 遍历方式
    • foreach, foreach内置遍历机制可以遍历collection。
      • Set getSet(); //map把key包装成set,通过foreach遍历
      • Set entrySet(); //map把键值对包装成entry(内置类),通过foreache遍历
    • Iterator, 集合实现类Iterator接口,可以通过生成迭代器来遍历
      • 同上
    • 比较,
      • foreach代码更简洁,从1.5开始foreach出现,是比较新的遍历器,但底层是用迭代器实习
      • Iterator一开始的map唯一遍历方式,更安全,更可靠,但是代码略臃肿
原文地址:https://www.cnblogs.com/refengqingfu/p/9979047.html