Java常用链表(列表)操作
数据结构课程中有两种实现List的办法:一种是用指针实现链表;一种用数组实现列表。链表Java中由库LinkedList实现,数组实现的库为ArrayList。这两个实现方法也有大部分相同的接口函数,功能完整,我觉得没必要不要用那些特殊的接口函数。
LinkedList和ArrayList都是不带互斥(同步)的,也就是说多线程操作这两类List是要bug的。多线程中要用Vector,或者自己控制互斥的访问LinkedList或ArrayList。
一、创建List
1 2 3 4 5 6 7 | import java.util.LinkedList; import java.util.ArrayList; import java.util.Vector; List< E > linkedlist = new LinkedList< E >(); List< E > arraylist = new ArrayList< E >(); List< E > vectorlist = new Vector< E >(); |
二、插入元素
1 2 | boolean add(E e); //加到末尾 void add(int index, E element);//加到第index处 |
不论哪种List都有这些相同的操作,但是可能会有性能上的差别:比如,LinkedList在中间追加的速度一般情况下比ArrayList快。
ArrayList也不用担心数组长度不够,这个库会自动增加和减小长度。
三、取出元素
1 2 3 | E get(int index) ; //得到第index处元素,但是不会删除 E remove(int index) ; //删除第index处元素,并返回 boolean remove(int index) ; //删除第一个匹配的元素 |
Leave a comment