Java基础篇之LinkedList类

139 阅读2分钟

LinkedList类扩展AbstractSequentialList并执行List接口。它提供了一个链接列表数据结构。它具有如下的两个构造函数,说明如下:

LinkedList( ) 
LinkedList(Collection c) 

第一个构造函数建立一个空的链接列表。第二个构造函数建立一个链接列表,该链接列表由类集c中的元素初始化。

除了它继承的方法之外,LinkedList类本身还定义了一些有用的方法,这些方法主要用于操作和访问列表。使用addFirst( )方法可以在列表头增加元素;使用addLast( )方法可以在列表的尾部增加元素。它们的形式如下所示:

void addFirst(Object obj) 
void addLast(Object obj) 

这里,obj是被增加的项。

调用getFirst( )方法可以获得第一个元素。调用getLast( )方法可以得到最后一个元素。它们的形式如下所示:

Object getFirst( ) 
Object getLast( ) 

为了删除第一个元素,可以使用removeFirst( )方法;为了删除最后一个元素,可以调用removeLast( )方法。它们的形式如下所示:

Object removeFirst( ) 
Object removeLast( ) 

下面的程序举例说明了几个LinkedList支持的方法。

// Demonstrate LinkedList. 
import java.util.*; 
class LinkedListDemo { 
 public static void main(String args[]) { 
 // create a linked list 
 LinkedList ll = new LinkedList(); 
 
 // add elements to the linked list 
 ll.add("F"); 
 ll.add("B"); 
 ll.add("D"); 
 ll.add("E"); 
 ll.add("C"); 
 ll.addLast("Z"); 
 ll.addFirst("A"); 
 ll.add(1, "A2"); 
 System.out.println("Original contents of ll: " + ll); 
 // remove elements from the linked list 
 ll.remove("F"); 
 ll.remove(2); 
 System.out.println("Contents of ll after deletion: " 
 + ll); 
 // remove first and last elements 
 ll.removeFirst(); 
 ll.removeLast(); 
 System.out.println("ll after deleting first and last: " 
 + ll); 
 // get and set a value 
 Object val = ll.get(2); 
 ll.set(2, (String) val + " Changed"); 
 System.out.println("ll after change: " + ll); 
 } 
}

该程序的输出如下所示:

Original contents of ll: [A, A2, F, B, D, E, C, Z] 
Contents of ll after deletion: [A, A2, D, E, C, Z] 
ll after deleting first and last: [A2, D, E, C] 
ll after change: [A2, D, E Changed, C] 

因为LinkedList实现List接口,调用add(Object)将项目追加到列表的尾部,如同addLast( )方法所做的那样。使用add( )方法的add(int, Object)形式,插入项目到指定的位置,如例子程序中调用add(1,“A2”)的举例。

注意如何通过调用get( )和set( )方法而使得ll中的第三个元素发生了改变。为了获得一个元素的当前值,通过get( )方法传递存储该元素的下标值。为了对这个下标位置赋一个新值,通过set( )方法传递下标和对应的新值。