2020.8.7日 MAP

发布于 2020-08-07  131 次阅读


Table of Contents

1.学习内容

  • Map集合(映射集合)
    • 特点(MAP
    • 每次要存储2个元素(key-value)
    • 一个键,只能对应一个值
    • 键不允许重复
    • MAP的实现类
    • HashMap 无序
      • 底层是哈希表结构,数组+列表
      • JDK1.8开始,链表节点8个以上,转为红黑树
      • 集合无序
      • 允许从此Null值,null键
      • 线程不安全,允许速度快
      • 开发人员:保证键对象的唯一性
      • 存储哈希表中的对象,必须实现hashCode,equals
    • LinkedHashMap 有序
      • 使用方法没什么区别
    • 常用方法
    • get() \ put() 注意事项:重复键返回被覆盖的值,其余都返回null
    • keySet() \ values()
    • containsKey() \ containsValue() 判断集合是否包含此值
    • entrySet() 返回一个set集合,装的是entry键和值对应关系实体
    • Properties集合
    • 学习的目的:Properties特性
      • 集合可以和IO流配合使用,实现数据的持久化
      • 键值对都是String类型
    • 常用方法
      • setProperty(string,string) 就是set()
      • getProperty(string) 就是get()
      • stringProperty() 就是keySet()
    • 继承Hashtable,实现了Map接口
    • Hashtable 类是Map结构的实现类
      • 底层数据是哈希表
      • 线程安全的集合,运行速度慢
      • 禁止null用作键和值
      • 被HashMap取代
  • 方法可变参数

    • 本质上将多个参数收集起来,放入一个数组
    • JDK1.5开始,可以传递数量不确定的参数
    • 语法: String ...args (类型 ...参数名)
    • [I@1b6d3586 [代表数组 I代表Int
    • 可变参数可以不传,所以可能为null
    • 注意事项:
    • 一个方法中只能有一个可变参数
    • 传递几个参数,可变参数长度就是几
    • 可变参数只能卸载最后一位
  • 集合嵌套

    • List嵌套List
    • List嵌套Map

2.扩展延伸知识

  • java的集合set,怎么遍历?

    • 1.拿到iterator 用hasNext做条件,while循环
    • 2.加强的for循环
  • 增强for循环,要有什么条件才可以使用?

    • 必须要实现Iterable接口,才可以使用增强for
  • Map可以使用增强for循环么?

3.灵感代办

  • 将职位爬虫图形化

4.复习内容

5.学习成果&问题