队列与栈

  1. 队列
package queueTest;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 队列
 * 与集合相似,可以保存一组元素。但是不能任意访问
 * 其中元素。存取必须遵循先进先出原则。
 * @author Administrator
 *
 */
public class QueueDemo {
    public static void main(String[] args) {
        /*
         * 由于LinkedList可以存放一组元素,并且
         * 增删效率比较高,所以其也实现了Queue接口
         * 可以看做是一个队列使用。
         */
        Queue queue 
            = new LinkedList();
        
        /*
         * boolean offer(E e)
         * 向队列末尾追加一个新元素 
         */
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        
        System.out.println(queue);
        
        /*
         * E poll()
         * 从队首获取元素,并且将该元素从队列中
         * 删除
         */
        String str = queue.poll();
        System.out.println(str);
        
        System.out.println(queue);
        
        /*
         * E peek()
         * 该方法也会获取队首元素,但是不会做
         * 出队操作,该元素不会从队列中被删除
         */
        str = queue.peek();
        System.out.println(str);
        System.out.println(queue);
        
        System.out.println(queue.size());
        /*
         * 遍历队列
         */
        while(queue.size()>0){
            str = queue.poll();
            System.out.println(str);
        }
        System.out.println(queue);
        
    }
}
package stackTest;

import java.util.Deque;
import java.util.LinkedList;

/**
 * 栈
 * 存放一组元素,存取必须遵循先进后出原则
 * 一般应用于操作的可追溯性(后退功能)
 * @author Administrator
 *
 */
public class StackDemo {
    public static void main(String[] args) {
        /*
         * java没有为栈单独设计类型。
         * 使用双端队列实现,只调用一侧的进出队
         * 方法,就形成了栈。
         * 不过双端队列由于具有栈的特性,所以为此
         * 给栈单独定义了从一侧进出的两个方法
         * push,pop
         */
        Deque stack
            = new LinkedList();
        /*
         * void push(E e)
         * 将元素"压入"栈中
         * 入栈操作,新进去的元素在栈顶(第一个位置)
         */
        stack.push("one");
        stack.push("two");
        stack.push("three");
        stack.push("four");
        
        System.out.println(stack);
        
        /*
         * E pop()
         * 出栈操作。获取栈顶元素。获取后该元素
         * 会从栈中删除。
         */
        String str = stack.pop();
        System.out.println(str);
        System.out.println(stack);
        
        //peek同样可以使用
        str = stack.peek();
        System.out.println(str);
        System.out.println(stack);
        
        //遍历
        while(stack.size()>0){
            str = stack.pop();
            System.out.println(str);
        }
        System.out.println(stack);
        
    }
}

你可能感兴趣的:(队列与栈)