LinkedList提供了addFirst(),addLast(),removeFirst()方法操作集合中的元素
基于这些功能,就可以实现队列与栈的数据结构。
队列---先进先出FIFO
import java.util.Collection; import java.util.LinkedList; public class Queue<E> { private LinkedList<E> link; Queue() { link = new LinkedList<E>(); } public void add(E e) { link.addLast(e); } public void addAll(Collection<? extends E> coll) { link.addAll(coll); } public E getNext() { return link.removeFirst(); } public boolean isEmpty() { return link.isEmpty(); } }
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("123"); list.add("abc"); list.add("000"); printQueue(list); } private static void printQueue(List<String> list) { Queue<String> queue = new Queue<String>(); queue.add("------------"); queue.addAll(list); queue.add("$$$$$$$$$$$$"); while(!queue.isEmpty()) { System.out.println(queue.getNext()); } }
结果
------------ 123 abc 000 $$$$$$$$$$$$
栈---后进先出FILO
import java.util.Collection; import java.util.LinkedList; public class Stack<E> { private LinkedList<E> link; public Stack() { link = new LinkedList<E>(); } public void add(E e) { link.addFirst(e); } public void addAll(Collection<? extends E> coll) { Object[] elements = coll.toArray(); int size = elements.length; for(int index=size-1;index>=0;index--) add((E)elements[index]); } public E getNext() { return link.removeFirst(); } public boolean isEmpty() { return link.isEmpty(); } }
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("123"); list.add("abc"); list.add("000"); printStack(list); } public static void printStack(List<String> list) { Stack<String> stack = new Stack<String>(); stack.add("------------"); stack.addAll(list); stack.add("$$$$$$$$$$$$"); while(!stack.isEmpty()) { System.out.println(stack.getNext()); } }
结果
$$$$$$$$$$$$ 123 abc 000 ------------
相关推荐
java中LinkedList集合类实现栈和队列.docjava中LinkedList集合类实现栈和队列.docjava中LinkedList集合类实现栈和队列.docjava中LinkedList集合类实现栈和队列.docjava中LinkedList集合类实现栈和队列.doc
总体介绍 LinkedList同时实现了List接口和Deque...关于栈或队列,现在的是ArrayDeque,它有着比LinkedList(当作栈或队列使用时)有着更好的性能。 LinkedList底层通过双向链表实现,本节将着重讲解插入和删
栈实现队列、队列实现栈 双端队列-返回滑动窗口的最大值 小顶堆-返回数据流的第k大元素 leetcode建议练习题号: 业界应用 如何实现浏览器的前进后退功能 hash 散列表即键值对的集合,js里常用{ }、new Map()表示 知识...
Arrays(数组)、Stacks(栈)、Queues(队列)、LinkedList(链表)、Recursion(递归思想)、BinarySearchTree(二分搜索树)、Set(集合)、Map(映射)、Heap(堆)、PriorityQueue(优先队列)、SegmentTree(线段树)、Trie(字典树)...
-> JDK(Java集合)-> Guava(谷歌)-> Commons-collections(Apache) 主要抽象数据结构——ADS列表(ArrayList、LinkedList、Vector)栈(FIFO)队列(LIFO、Deque——双端队列) interface Map<Key> TreeMap<K> ...
链表(LinkedList) 单向链表 双向链表 循环链表 静态链表 栈(Stack) 队列(Queue) 双端队列(Deque) 循环队列 哈希表(HashTable) 树形数据结构 二叉树(BinaryTree)、二叉搜索树(BinarySearchTree、BST) ...
4.14 List集合的实现类ArrayList和LinkedList 39 4.15 Iterator迭代器 42 4.16泛型 43 4.17增强型for循环 43 4.18 List高级-数据结构:Queue队列 44 4.19 List高级-数据结构:Deque栈 44 4.20 Set集合的实现类...
数组、栈、队列、链表、二分搜索树、集合、映射、优先队列、堆、线段树、Trie、并查集、AVL、红黑树、哈希表 数据处理典型案例,逐渐更新 :hot_beverage: Java 、、基本概念、面向对象、基本数据类型与运算、字符串...
4.5.1 一个简单的想法(不能直接使用) 4.5.2 展开 4.6 树的遍历 4.7 b树 4.8 标准库中的集合与映射 4.8.1 关于set接口 4.8.2 关于map接口 4.8.3 treeset类和treemap类的实现 4.8.4 使用多个映射...
4.5.1 一个简单的想法(不能直接使用) 4.5.2 展开 4.6 树的遍历 4.7 b树 4.8 标准库中的集合与映射 4.8.1 关于set接口 4.8.2 关于map接口 4.8.3 treeset类和treemap类的实现 4.8.4 使用多个映射...
集合与映射 :Hash 表 树形结构: : 二分查找树 : 平衡树 : 红黑树 : 线段树 : 字典树 其他: : 图 : 跳表 : 并查集 JDK 集合源码 基本 List, Set, Queue, Map ArrayList, LinkedList, Vector, ...
目录1. 集合的概念2. 集合的分类3. 对集合操作的接口3.1 Collection接口3.2 List接口3.3 Set接口4....数据结构1.1 栈1.2 队列1.3 数组1.4 链表1.5 树1.5.1 二叉树1.5.2 红黑树2. 关于泛型2.1 概念2.2 定义和使用2.3 泛
平均情况下,作为栈比Stack效率更高,作为层次比LinkedList效率更高。 对于整型元素而言,最小堆。 放 | 设置中位数出现重复元素。 HashSet完全依赖HashMap(将HashMap实例作为一个属性),Map中的键用于存储元素...
remove方法对LinkedList类的使用3.3.5 关于ListIterator接口3.4 ArrayList类的实现3.4.1 基本类3.4.2 迭代器、Java嵌套类和内部类3.5 LinkedList类的实现3.6 栈ADT3.6.1 栈模型3.6.2 栈的实现3.6.3 应用3.7 队列...
4.8 标准库中的集合与映射 4.8.1 关于Set接口 4.8.2 关于Map接口 4.8.3 TreeSet类和TreeMap类的实现 4.8.4 使用多个映射的例 小结 练习 参考文献 第5章 散列 5.1 一般想法 5.2 散列函数 5.3 分离链接法 5.4 不用...
remove方法对LinkedList类的使用3.3.5 关于ListIterator接口3.4 ArrayList类的实现3.4.1 基本类3.4.2 迭代器、Java嵌套类和内部类3.5 LinkedList类的实现3.6 栈ADT3.6.1 栈模型3.6.2 栈的实现3.6.3 应用3.7 队列...
remove方法对LinkedList类的使用3.3.5 关于ListIterator接口3.4 ArrayList类的实现3.4.1 基本类3.4.2 迭代器、Java嵌套类和内部类3.5 LinkedList类的实现3.6 栈ADT3.6.1 栈模型3.6.2 栈的实现3.6.3 应用3.7 队列...
数据结构与算法:包括数组、链表、栈、队列、二叉树、图、堆、排序算法、查找算法等。 图形用户界面(GUI)编程:包括窗口、面板、按钮、标签、文本框、列表框、菜单、对话框等组件的使用、事件处理等。 网络编程:...