//2、创建一个新节点
//3、将新节点添加到div节点后面
//具体 *** 作如下:
var divs = document.getElementsByTagName("DIV")//获取页面中所有div
for(var i=0 i<divs.length i++) {
var div = divs[i]//获取第i个div
var divParent = div.parentNode//获取该div的父节点
var newNode = document.createTextNode("文本节点")//创建文本节点
var next = div.nextSibling//获取div的下一个兄弟节点
//判断兄弟节点是否存在
if(next) {
//存在则将新节点插入到div的下一个兄弟节点之前,即div之后
divParent.insertBefore(newNode,next)
} else {
//不存在则直接添加到最后,appendChild默认添加到divParent的最后
divParent.appendChild(newNode)
}
}
//以下是一些常用js *** 作
var textNode = document.createTextNode("xxx")//创建文本节点
var elementNode = document.createElement("p")//创建元素节点(p)
var body = document.getElementsByTagName("body")[0]//获取body节点
body.appendChild(elementNode)//元素节点添加到body节点下,添加在末尾
elementNode.appendChild(textNode)//将文件节点添加到元素节点下
//获取要删除的节点,elementNode.length-1 表示最后一个指定节点(这里表示最后一个p节点)
var delElementNode = elementNode.item(elementNode.length-1)
body.removeChild(delElementNode);//移除指定节点
body.insertBefore(newNode, oldNode)//在body中的oldNode前插入newNode节点
body.replaceChild(newNode, oldNode)//将body中的oldNode替换为newNode节点
//创建一个新的属性
var style = document.createAttribute("style")
//为节点添加新属性
option.attributes.setNamedItem(style)
//设置新属性的值
option.setAttribute("style","color:red")
同:三个类都是实现了List接口,存储数据的特点相同:存储有序的、可重复的数据
异:
ArrayList:是用的最多得,线程不安全所以效率高。底层使用Object[] elementData数组存储
LinkedList:对于平凡的插入、删除 *** 作效率更高,因为底层是双向链表(ArrayList的话要一个个移,但是查找多还是
ArrayList好)
Vector:1.0的时候出的古老实现类,其他包括List本身都是1.2出的;线程安全效率慢,其他和ArrayList差不多底层也是数组。接班不用
ArrayList:
jdk7.0的时候:
ArrayList list = new ArrayList()// 底层创建了长度是10的数组
当添加的元素数量超过数组容量了就扩容, 默认情况下扩容1.5倍 ,并复制到新数组里。(和StringBuilder很像)
建议开发中使用带参数的构造器:
new ArrayList(int capacity)
jdk8.0的时候:
new ArrayList()//底层初始化为{},第一次add时才创建长度为10的数组,其他一样
好处:延迟数组的创建,节省内存
Vector:
如果没给capacity一开始也初始化长度为10的数组(类ArrayList7.0),但是扩容的时候扩为原来的2倍
Linked list = new LinkedList()//内部声明了Node类型的first和last属性,默认值为null
list.add(“something”)//创建node并将数据装到node里
其中Node定义为:
//是linkedlist的一个内部类
private static class Node<E>{
E item;//数据
Node<E>next
Node<E>prev
Node(Node<E>prev,Node<E>next,Node<E>next){
this.item = element
this.next = next
this,prev = prev
}
}
List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来 *** 作集合元素的方法。
void add(int index, Object ele):在index位置插入ele元素
boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
Object get(int index):获取指定index位置的元素
int indexOf(Object obj):返回obj在集合中首次出现的位置,找不到就-1
int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置,找不到就-1
Object remove(int index):移除指定index位置的元素,并返回此元素
Object set(int index, Object ele):设置指定index位置的元素为ele
List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
总结常用方法:
增:add(Object)
删:remove(Object)/remove(index)
改:set(index,Object)
查:get(index)
插入:add(index,Object)
长度:size()
遍历:
1.iterator
2.for(Object o : list)
3.for(int i =0i<list.size()i++)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)