申请注册网站域名.商城,网页制作那家好,长沙制作公园仿竹护栏多少钱一米,闲鱼钓鱼网站怎么做目录
1.Java封装的栈
2.Java自带的队列
2.1 ArrayDeque
2.2 LinkedList
2.3 PriorityQueue 1.Java封装的栈 栈——“后进先出”原则 StackT stack new Stack();/**栈顶添加元素*/
stack.push(T);/**栈顶弹出元素*/
T temp stack.pop();/**查看当前栈顶元素,元素…目录
1.Java封装的栈
2.Java自带的队列
2.1 ArrayDeque
2.2 LinkedList
2.3 PriorityQueue 1.Java封装的栈 栈——“后进先出”原则 StackT stack new Stack();/**栈顶添加元素*/
stack.push(T);/**栈顶弹出元素*/
T temp stack.pop();/**查看当前栈顶元素,元素不出栈*/
T temp stack.peek();
2.Java自带的队列 队列——“先进先出”原则 定义 是指Java集合框架中的Queue接口及其实现类。 Queue接口继承自Collection接口表示一种先进先出FIFO的数据结构常用于实现队列的功能。 Java中常用的队列实现类包括 ArrayDeque基于数组实现的双端队列既可以作为队列使用也可以作为栈使用。LinkedList基于链表实现的双向队列也可以作为队列使用。PriorityQueue基于堆实现的优先队列元素按照优先级顺序排序。 Java的队列实现类 1、都实现Queue接口使用方法一致 2、都是线程安全的可以在多线程环境下使用。 2.1 ArrayDeque 当作栈使用 入栈(只能从栈顶进) 1、push() 出栈 从栈顶出,注意这里First表示栈顶 1、pop() 2、poll() 3、pollFirst() Last是栈底 3、pollLast() 查看 栈顶 1、peek() 2、peekFirst() 栈底 3、peekLast() ArrayDequeInteger arrayDeque new ArrayDeque();
/**入栈*/arrayDeque.push(1);arrayDeque.push(9);
/**弹出栈顶元素*/System.err.println(arrayDeque.pop());//打印9
/**查看现在栈顶元素*/System.err.println(arrayDeque.peek());//打印1 当作队列使用方法 入队 加入队头 1、offer(T) 2、offerFirst(T) (加入队尾) 3、offerLast(T) 出队 (队头出) 1、pop() 2、poll() 3、pollFirst() (队尾出) 3、pollLast() 查看元素不弹出 队头 1、peek() 2、peekFirst() (队尾) 3、peekLast() import java.util.ArrayDeque; ArrayDequeInteger deque new ArrayDeque();/**加入元素*/deque.offer(1);deque.offer(4);deque.offer(3); // 队列元素为 1 4 3/**队头加入元素 */deque.offerFirst(5);// 队列元素 5 1 4 3/**队尾加入元素 */deque.offerLast(7);// 队列元素 5 1 4 3 7/**查看对头元素 */System.err.println(deque.getFirst());//5System.err.println(deque.peekFirst());//5/**查看队尾元素 */System.err.println(deque.getLast());//7/**弹出队头元素 */System.err.println(deque.poll());//5System.err.println(deque.pollFirst());//1/**查看当前队头元素(不弹出) */System.err.println(deque.peek());System.err.println(deque.peekFirst());}
2.2 LinkedList 作栈和队列使用同ArrayDeque一致 区别存储方式不一致LinkedList是链式存储 方法概述 其实跟ArrayDeque使用一模一样就是初始化队列不同 LinkedListInteger deque new LinkedList();deque.offer(1);deque.offer(4);deque.offer(3); // 队列元素为 1 4 3/**队头加入元素 */deque.offerFirst(5);// 队列元素 5 1 4 3/**队尾加入元素 */deque.offerLast(7);// 队列元素 5 1 4 3 7/**查看对头元素 */System.err.println(deque.getFirst());//5System.err.println(deque.peekFirst());//5/**查看队尾元素 */System.err.println(deque.getLast());//7/**弹出队头元素 */System.err.println(deque.poll());//5System.err.println(deque.pollFirst());//4/**查看当前队头元素(不弹出) */System.err.println(deque.peek());System.err.println(deque.peekFirst());}2.3 PriorityQueue 只能作为队列而且相比LinkedListPriorityQueue加入元素会自动按顺序重组 入队只有队尾加元素 offer() 出队只有对头出元素 poll() 只能查看队头元素 peek() PriorityQueueInteger queue new PriorityQueue();// 入队queue.offer(3);queue.offer(1);queue.offer(2);// 出队System.out.println(queue.poll()); // 输出1// 查看队首元素System.out.println(queue.peek()); // 输出2