Skip to content

数据结构Set和Map

Set

  • 定义: 称为集合,是一种类似于数组的数据结构,允许存储任何类型(基本类型或引用类型)的唯一值。
  • 特点: 成员的值是唯一的,不可重复;可以存储各种类型的数据;可以记住键的插入顺序(有序)。
  • 基本操作: add()delete()has()clear()forEach()keys()size等。

WeakSet

  • 定义: 对象值的集合,成员对象只能是引用类型,不能是基本类型,并且每个对象值是唯一、不可重复的。
  • 特点: 成员的只能是对象;不能遍历,没有size属性;如果对象的其他引用被移除,对象会被垃圾回收,从WeeakSet中自动消失(弱引用)
  • 基本操作: add()delete()has()

Map

  • 定义: 键和值都可以是任意类型的键值对结构,类似于Object;在频繁增删的场景下,Map性能高于Object(数组查找快+链表增删快)。
  • 特点: 键和值都可以是任意类型;可以记住键的插入顺序(有序)。
  • 基本操作: get()delete()has()clear()forEach()keys()size等。

WeakMap

  • 定义: 对键值对结构,键只能是引用类型,不能是基本类型,值可以是任意类型。
  • 特点: 键的只能是对象;不能遍历,没有size属性;如果键的其他引用被移除,对象会被垃圾回收,从WeeakMap中自动消失(弱引用)
  • 基本操作: set()get()has()

总结

SetMap适合存储需要遍历和管理大量数据的场景;而WeakSetWeakMap由于弱引用的特性,适合用于需要自动清理不再使用的对象,避免内存泄漏的场景。

Released under the MIT License.