靜態集合與動態集合的不同

2021-10-10 20:27:25 字數 1307 閱讀 3708

nodelist 有兩種, 一種是動態集合, 一種是靜態集合, 所謂動態集合, 主要是 node.prototype.childnodes; 返回的子節點集合對文件的節點增刪改會即時改變; 而靜態集合則不會, 比如document.queryselectorall();

lang

="en"

>

>

charset

="utf-8"

>

name

="viewport"

content

="width=device-width, initial-scale=1.0"

>

>

documenttitle

>

head

>

>

>

>

1li>

>

2li>

>

3li>

>

4li>

>

5li>

>

6li>

ul>

>

var oul=document.

queryselector

("ul");

var ali1=document.

getelementsbytagname

("li");

//獲取的是動態集合

var ali2=document.

queryselectorall

("li");

//獲取的是靜態集合,快照機制

// 刪除某個元素的寫法:元素的父元素.removechild(元素)

// oul.removechild(ali1[0]);

// 用第乙個獲取ali的方法(ali1)將所有的li全部刪除

// 問題:刪不完,剩下2,4,6

// 原因:動態集合獲取的元素,會隨著元素的變化變數也發生變化。即就是刪除乙個長度就會減少乙個,同時假設全部刪除,後面的元素會往前移。但靜態集合就不會

// for(var i=0;i

// oul.removechild(ali1[i]);

// }

for(

var i=

0;i)// 另一種解決辦法

var alilength=ali1.length;

for(

var i=

0;i)script

>

body

>

html

>

不同的集合效能

許多集合類都提供了相同的功能,例如,sortedlist類和sorteddictionary類的功能幾乎完全相同。但是,其效能常常有很多大區別。乙個集合使用的記憶體少,另乙個集合的元素檢索速度快。在msdn文件中,集合的方法常常有效能提示,給出了以大寫o記號表示的操作事件 o 1 表示無論集合中有多...

不同集合之間的比較

1 list,set都是繼承自collection介面 2 list特點 元素有放入順序,元素可重複 set特點 元素無放入順序,元素不可重複,重複元素會覆蓋 map 沒有繼承 collection 介面,map 提供 key 到 value 的對映,你可以通過 鍵 查詢 值 乙個 map 中不能包...

list集合與queue集合

1 特點 元素是有序 可重複的,因為該集合體系有索引。list體系下listiterator介面在iterator介面基礎上增加了如下方法 void add object o 在指定位置插入乙個元素 2 實現類 arraylist和vector作為list類的兩個典型實現,完全支援之前介紹的list...