概述
LinkedList其实不止实现了List接口,Cloneable, Serializable这两个常规接口,此外还实现了Deque接口。正是如此,它不仅仅是个列表(List),同时还是
个双向队列(Deque),栈(Stack)。
LinkedList 类的定义:
publicclassLinkedList<E>extends AbstractSequentialList<E> implementsList<E>,Deque<E>,Cloneable, java.io.Serializable
例1
- 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
- import java.util.*;
- public class QueueDemo{
- public static void main(String args[])
- {
- Queue<String> q = new LinkedList<String>();//LinkedList实现Queue接口,面向对象的多态性
- q.offer("first");
- q.offer("second");
- q.offer("third");
- System.out.println(q);
- //poll()函数:从队列首位取出并删除该元素
- String qs = q.poll();
- System.out.println(qs);
- System.out.println(q);
- //peek():从队列首位取出元素但不删除
- String qc = q.peek();
- System.out.println(qc);
- System.out.println(q);
- }
- }
双向队列(Deque),是Queue的一个子接口,双向队列是指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队和
出队,则可实现栈的数据结构。对于栈而言,有入栈(push)和出栈(pop),遵循先进后出原则
例3
- import java.util.*;
- public class DequeDemo {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Deque<String> d = new LinkedList<String>();
- //push():将元素压入栈首
- d.push("first");
- d.push("second");
- d.push("third");
- System.out.println(d);
- String ds=d.poll();
- System.out.println(ds);
- System.out.println(d);
- d.push(ds);
- System.out.println(d);
- System.out.println(d.size());
- while(d.size()>0){
- System.out.println(d.pop());//pop()函数将元素从栈首取出,并出栈
- }
- System.out.println(d);
- }
- }
LinkedList不是直接根据index对元素进行操作,而是先遍历找到index对应元素,然后进行操作;
下面顺便介绍一下构建二叉树的方法,已经遍历二叉树的三种方法。
最后
以上就是矮小摩托为你收集整理的java 数据结构的全部内容,希望文章能够帮你解决java 数据结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复