在之前的文章中有涉及set和map的使用,但整理的不是很清晰。这里做一个简洁明了的说明。
set和map的特性
set是一种关联式容器
- set以RBTree作为底层容器
- 所得元素的只有key没有value,value就是key
- 不允许出现键值重复
- 所有的元素都会被自动排序
- 不能通过迭代器来改变set的值,因为set的值就是键
map也是关联式容器,它们的底层容器都是红黑树,区别就在于map的值不作为键,键和值是分开的。
- map以RBTree作为底层容器
- 所有元素都是键+值存在
- 不允许键重复
- 所有元素是通过键进行自动排序的
- map的键是不能修改的,但是其键对应的值是可以修改的
具体应用
set
<script>
const NumberSet=new Set();
NumberSet.add(1);
NumberSet.add(5);
NumberSet.add(2);
console.log(NumberSet)
</script>
【注意】new Set()的S大写
- add添加元素
- delete删除元素,看返回值是true或者false来判断是否删除成功
- has判断是否含有这个值
可以看见这里添加“1”时,添加成功了
map
const cities = new Map();
cities.set(1,"北京");
cities.set(2,"上海");
cities.set(3,"杭州");
console.log(cities)
【注意】cities.set的s小写
set添加元素
delete删除
has判断
可以随意存放任意格式