java 数据结构
来源:互联网 发布:软件定义 编辑:程序博客网 时间:2024/06/15 22:36
LinkedList其实不止实现了List接口,Cloneable, Serializable这两个常规接口,此外还实现了Deque接口。正是如此,它不仅仅是个列表(List),同时还是
个双向队列(Deque),栈(Stack)。
LinkedList 类的定义:
publicclassLinkedList<E>extendsAbstractSequentialList<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对应元素,然后进行操作;下面顺便介绍一下构建二叉树的方法,已经遍历二叉树的三种方法。
0 0
- Java数据结构
- JAVA数据结构
- java数据结构
- java数据结构
- JAVA数据结构
- JAVA数据结构
- java数据结构
- java数据结构
- JAVA数据结构
- Java数据结构!!!
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- java数据结构
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- JAVA数据结构
- opencv将灰度图转化为RGB三通道图像
- linux 内核配置文件/etc/grub.conf
- RN部署热更新学习
- springboot 使用Servlet,Filter,Listener的方法
- Spark Utils find localIpAddress
- java 数据结构
- C#中文本文件与二进制文件
- 51nod_1046 A^B Mod C
- 数据库同步
- 实现足够大List<int>剔除重复的数字
- can’t refactor code used in this language
- MySQL存储过程decimal得到值为0.00问题
- What exactly is copy-on-modify semantics in R, and where is the canonical source?
- 表格内容筛选