美文网首页
队列与栈

队列与栈

作者: Ernest_Chou | 来源:发表于2018-08-09 17:52 被阅读0次
    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<String> queue 
                = new LinkedList<String>();
            
            /*
             * 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<String> stack
                = new LinkedList<String>();
            /*
             * 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);
            
        }
    }
    
    

    相关文章

      网友评论

          本文标题:队列与栈

          本文链接:https://www.haomeiwen.com/subject/fzpcbftx.html