LinkedList是一个双向链表,它用来存储数据,可以存贮任何类型的数据,它有两个指针:previous,next
构造方法
new LinkedList()//创建一个空链表
new LinkedList(Collection e)//用来复制一个链表,将e链表复制到新创建的链表中
1.添加元素
add()在链表的末尾直接添加元素
add(int index, E
e)在链表的指定位置插入指定的元素。
add(Collection
e)将链表e复制到新的链表中
addFirst(E e)在链表开始出添加一个元素
addLast()在链表的末尾添加一个元素
package 第一次;
import java.util.Iterator;
import java.util.LinkedList;
public class linkedList {
public static void main(String[] args) {
// TODO Auto-generated method
stub
LinkedList list=new
LinkedList();
list.add("张三");
list.add("李四");
list.add("王二");
list.add("张五");
LinkedList list1=new
LinkedList(list);
list1.add(3, "1234");
Iterator
it=list1.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
LinkedList list2=new
LinkedList();
list2.addAll(list1);
System.out.println(list2);
}
}
输出结果:
张三
李四
王二
1234
张五
[张三, 李四, 王二, 1234, 张五]
删除元素:
void
clear()删除链表中所有元素
E remove()该方法用来删除链表的第一个元素并返回第一个元素
E remove(int index)删除指定位置的元素
E
removeFirst()删除第一个元素
E removeLast()删除最后一个元素
boolean remove(Object
o)删除在链表中首次出现的指定元素(链表中允许有相同的元素存在),如果存在
E removeFirstOccurrence(Object
o)删除链表中第一次出现的指定元素,编历时从头到尾
E removeLastOccurrence(Object o)删除链表中最后一次出现的指定元素,编历时从头到尾
查找元素:
E get(int index)查找指定位置上的元素
E getFrist()获得第一个位置上的元素
E getLast()获得最后位置上的元素
int indexOf(Object o)获取指定元素首次出现位置,如果元素不存在则返回-1
int lastIndexOf(Object 0)获取指定元素最后出现的位置,如果元素不存在则返回-1
替换元素:
set(int index, Object o)用指定的元素替换指定位置的元素
测量量表的大小
int size()返回指定链表的长度
元素的遍历
LinkedList类继承AbstractSequentialist这个类,因此继承它的iterator,调用这个方法可以返回一个迭代器实例,通过这个实例可以遍历链表中元素,迭代器有三个方法:
hasNext();判断是否还有下个元素,如果有则返回true,否则返回false
next();返回下一个元素
remove();删除指针所指的元素;
迭代器的指针是指在元素的中间,最初始的时候指向第一个元素的前面
例如:
LinkedList list=new LinkedList();
list.add("张三");
list.add("李四");
list.add("王二");
list.add("张五");
Iterator
it=list1.iterator();//链表实例调用iterator方法创建一个iterator实例,并初始化句柄对象,句柄对象指向链表第一元素的前面
while(it.hasNext()){
System.out.println(it.next());//当遍历完成后,指针指向了最后一个元素前面,如果需要重新遍历,那么需要重新初始化一个句柄对象
}