cakin24 阅读(514) 评论(0)

        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。