源内容(英文)
链表是集合框架的一部分,位于java.util包中。这个类实现了链表数据结构,它是一种线性数据结构,其中元素不存储在连续的位置,每个元素都是一个单独的对象,包含数据部分和地址部分。
什么是链表API?
- 链表API旨在实现作为集合框架一部分的链表集合,它继承自java.util包。
- 这个API是List和Deque接口的双向链表实现。
- 该API实现了所有可选的列表操作,并允许所有元素(包括null)。
- 所有操作都按照双向链表的预期执行。索引到列表中的操作将从开头或结尾遍历列表,以接近指定索引的位置为准。
- 下面是用于实现链表集合API的Java程序的源代码。
示例:
Java
“`java
// Java程序实现LinkedList API
// 从java.util包导入实用类
import java.util.*;
import java.util.Collection;
// 类
// 包含所有方法的主类
public class LinkedListImpl {
// 此类的成员变量
private LinkedList linkedList;
// 此类的构造函数
// 1. 默认构造函数
public LinkedListImpl()
{
linkedList = new LinkedList();
}
// 2. 参数化构造函数
public LinkedListImpl(Collection c)
{
linkedList = new LinkedList(c);
}
// 方法1
// 将指定元素追加到此列表的末尾
public boolean add(E e)
{
// 返回列表中的最后一个元素
return linkedList.add(e);
}
// 方法2
// 在此列表的指定位置插入指定元素
public void add(int index, E element)
{
linkedList.add(index, element);
}
// 方法3
// 将所有元素添加到此列表中
public boolean addAll(Collection c)
{
return linkedList.addAll(c);
}
// 方法4
// 将所有元素添加到此列表中
public boolean addAll(int index,
Collection c)
{
return linkedList.addAll(index, c);
}
// 方法5
// 在此列表的开头插入指定元素
public void addFirst(E e) { linkedList.addFirst(e); }
// 方法6
// 将指定元素追加到此列表的末尾
public void addLast(E e) { linkedList.addLast(e); }
// 方法7
// 从此列表中移除所有元素。
public void clear() { linkedList.clear(); }
// 方法8
// 返回此ArrayList实例的浅表副本。
public Object clone() { return linkedList.clone(); }
// 方法9
// 如果此列表包含指定元素,则返回true。
public boolean contains(Object o)
{
return linkedList.contains(o);
}
// 方法10
// 返回此双端队列中元素的迭代器(反向顺序)
public Iterator descendingIterator()
{
return linkedList.descendingIterator();
}
// 方法11
// 检索但不移除此列表的头(第一个元素)。
public E element() { return linkedList.element(); }
// 方法12
// 返回此列表中指定位置的元素。
public E get(int index)
{
return linkedList.get(index);
}
// 方法13
// 返回此列表中的第一个元素。
public E getFirst() { return linkedList.getFirst(); }
// 方法14
// 返回此列表中的最后一个元素。
public E getLast() { return linkedList.getLast(); }
// 方法15
// 返回指定元素首次出现的索引
public int indexOf(Object o)
{
return linkedList.indexOf(o);
}
// 方法16
// 如果此列表不包含元素,则返回true。
public boolean isEmpty()
{
return linkedList.isEmpty();
}
// 方法17
// 按适当顺序返回此列表中元素的迭代器。
public Iterator iterator()
{
return linkedList.iterator();
}
// 方法18
public int lastIndexOf(Object o)
{
return linkedList.lastIndexOf(o);
}
// 方法19
public ListIterator listIterator()
{
return linkedList.listIterator();
}
// 方法20
public ListIterator listIterator(int index)
{
return linkedList.listIterator(index);
}
// 方法21
// 将指定元素添加为此列表的尾部(最后一个元素)
public boolean offer(E e)
{
return linkedList.offer(e);