在之前的文章中有涉及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判斷
可以隨意存放任意格式