JS 数据结构 - 字典

字典

也称映射,符号表和关联数组。常用于保存对应引用地址。

字典中存储的是键值对 key: value

其中,键(key)是对外展示的用于获取值(value)的。

一个字典应该有:

  • 增加键值对
  • 删除键值对
  • 查询键存在
  • 获取键值
  • 清空字典
  • 获取字典大小
  • 查看字典是否为空
// 这是使用数组实现的简单字典
class Dictionary<K, V> {
  keyList: K[]
  valueList: V[]
  constructor () {
    this.keyList = []
    this.valueList = []
  }

  get (key: K): V {
    for (let i = 0; i < this.keyList.length; i++) {
      if (this.keyList[i] === key) return this.valueList[i]
    }
    return undefined as V
  }

  set (key: K, value: V): boolean {
    if (this.hasKey(key)) return false
    this.keyList.push(key)
    this.valueList.push(value)
    return true
  }

  remove (key: K): boolean {
    if (this.hasKey(key)) {
      for (let i = 0; i < this.keyList.length; i++) {
        if (this.keyList[i] === key) {
          this.keyList.splice(i, 1)
          this.valueList.splice(i, 1)
          return true
        }
      }
    }
    return false
  }

  isEmpty (): boolean {
    return !!this.keyList.length
  }

  clear (): void {
    this.keyList.length = 0
    this.valueList.length = 0
  }

  size (): number {
    return this.keyList.length
  }

  hasKey (key: K): boolean {
    return this.keyList.includes(key)
  }
}

JS 数据结构 - 字典
http://localhost:8080/archives/ce3c5722-8836-4383-8591-95c43c7390df
作者
inksha
发布于
2024年09月14日
许可协议