LinkedList类是List接口的实现类,这意味着它是一个List集合,可以根据索引来随机访问集合中的元素。除此之外,LinkedList还实现了Deque接口,可以被当成双端队列使用,因此既可以被当成“栈”来使用,也可以当成队列使用。
1 代码示例
import java.util.*;
public class LinkedListTest
{
public static void main(String[] args)
{
LinkedList books = new LinkedList();
// 将字符串元素加入队列的尾部
books.offer("爸爸");
// 将一个字符串元素加入栈的顶部
books.push("妈妈");
// 将字符串元素添加到队列的头部(相当于栈的顶部)
books.offerFirst("孩子");
// 以List的方式(按索引访问的方式)来遍历集合元素
for (int i = 0; i < books.size() ; i++ )
{
System.out.println("遍历中:" + books.get(i));
}
// 访问、并不删除栈顶的元素
System.out.println(books.peekFirst());
// 访问、并不删除队列的最后一个元素
System.out.println(books.peekLast());
// 将栈顶的元素弹出“栈”
System.out.println(books.pop());
// 下面输出将看到队列中第一个元素被删除
System.out.println(books);
// 访问、并删除队列的最后一个元素
System.out.println(books.pollLast());
// 下面输出:[妈妈 ]
System.out.println(books);
}
}
2 运行结果
遍历中:孩子
遍历中:妈妈
遍历中:爸爸
孩子
爸爸
孩子
[妈妈, 爸爸]
爸爸
[妈妈]
3 代码分析
offer函数相当于“队列进”。push函数相当于从“栈进”。offerFirst相当于从List的0号元素前加入或相当于从“栈进“。System.out.println("遍历中:" + books.get(i));遍历输出,表示从0号元素开始往后索引依次输出。peekFirst访问的索引0。peekLast访问的是最后一个索引,相当于索引7。pop函数相当于“栈出”。pollLast相当于从List的末尾元素出队列,即索引7。