LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.
LinkedList的构造函数如下
1. public LinkedList(): ——生成空的链表
2. public LinkedList(Collection col): 复制构造函数
1、获取链表的第一个和最后一个元素
importjava.util.LinkedList;
publicclassLinkedListTest{
publicstaticvoidmain(String[] args) {
LinkedList lList = newLinkedList();
lList.add("1");
lList.add("2");
lList.add("3");
lList.add("4");
lList.add("5");
System.out.println("链表的第一个元素是 : "+ lList.getFirst());
System.out.println("链表最后一个元素是 : "+ lList.getLast());
}
}
2、获取链表元素
for(String str: lList) {
System.out.println(str);
}
3、从链表生成子表
List subl = lList.subList(1,4);
System.out.println(subl);
lst.remove(2);
System.out.println(lst);
System.out.println(lList);
4、添加元素:添加单个元素
如果不指定索引的话,元素将被添加到链表的最后.
public boolean add(Object element)
public boolean add(int index, Object element)
也可以把链表当初栈或者队列来处理:
public boolean addFirst(Object element)
public boolean addLast(Object element)
addLast()方法和不带索引的add()方法实现的效果一样.
importjava.util.LinkedList;
publicclassLinkedListTest{
publicstaticvoidmain(String[] a) {
LinkedList list = newLinkedList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.addFirst("X");
list.addLast("Z");
System.out.println(list);
}
}
5、删除元素
publicObject removeFirst()
publicObject removeLast()
importjava.util.LinkedList;
publicclassMainClass {
publicstaticvoidmain(String[] a) {
LinkedList list = newLinkedList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.removeFirst();
list.removeLast();
System.out.println(list);
}
}
6、使用链表实现栈效果
importjava.util.LinkedList;
publicclassMainClass {
publicstaticvoidmain(String[] args) {
StackL stack = newStackL();
for(inti =0; i <10; i++)
stack.push(i);
System.out.println(stack.top());
System.out.println(stack.top());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
classStackL {
privateLinkedList list =newLinkedList();
publicvoidpush(Object v) {
list.addFirst(v);
}
publicObject top() {
returnlist.getFirst();
}
publicObject pop() {
returnlist.removeFirst();
}
}
7、使用链表来实现队列效果
importjava.util.LinkedList;
publicclassMainClass {
publicstaticvoidmain(String[] args) {
Queue queue = newQueue();
for(inti =0; i <10; i++)
queue.put(Integer.toString(i));
while(!queue.isEmpty())
System.out.println(queue.get());
}
}
classQueue {
privateLinkedList list =newLinkedList();