Java中Stack与Queue的示例分析

2023-05-13,,

这篇文章给大家分享的是有关Java中StackQueue的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

java基本数据类型有哪些

Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。

一、Stack

示例:

package StackPack;

import java.util.Stack;
public class StackDemo {
    public static void main(String[] args) {
        Stack<Integer> stack=new Stack<>();

        for(int i=0;i<10;i++)
        {
            stack.push(i*2);
        }
        //[0, 2, 3, 4, 6, 8, 12, 14, 16, 18]
        System.out.println(stack.peek());  //18
        System.out.println(stack.search(14));  //以1为基数,
        // 返回最近出现位置到栈顶距离,因此为3
        while(!stack.isEmpty())
        {
            System.out.print(stack.pop()+"\t");
        }
        System.out.println();

        System.out.println(stack.search(1));  //找不到,返回-1


    }
}

二、Queue

由于Queue只是个接口,因此没有构造方法

从这里可以看到Queue从Collection中继承了add,remove等方法,但是我们应该尽量使用offer替换add,使用poll来替换remove

使用Queue特有的方法offer,poll的好处是可以通过判断返回值判断操作是否成功完成,而add,remove则会在失败时抛出异常

示例:

package QueuePack;

import java.util.*;
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue=new ArrayDeque<>();
        for(int i=0;i<10;i++)
        {
            queue.offer(i*2);
        }

        Iterator<Integer> it=queue.iterator();
        while(it.hasNext())
        {
            System.out.print(it.next()+"\t"); //0	2	4	6	8	10	12	14	16	18
        }
        System.out.println();

        System.out.println(queue.peek()); //0
        System.out.println(queue.poll());  //0,同时队列变成[2,4,6,8,10,12,14,16,18]
        
    }
}

示例:十进制转二进制

因为十进制转二进制是每次模2取余直到num=0,然后将余数反转即可得到转换的结果,因此可以利用双向队列Deque

代码

package QueuePack;

import java.util.*;
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue=new ArrayDeque<>();
        for(int i=0;i<10;i++)
        {
            queue.offer(i*2);
        }

        Iterator<Integer> it=queue.iterator();
        while(it.hasNext())
        {
            System.out.print(it.next()+"\t"); //0	2	4	6	8	10	12	14	16	18
        }
        System.out.println();

        System.out.println(queue.peek()); //0
        System.out.println(queue.poll());  //0,同时队列变成[2,4,6,8,10,12,14,16,18]
        
    }
}

Queue是单队列,Deque是双向队列,根据需要使用。

感谢各位的阅读!关于“Java中Stack与Queue的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

《Java中Stack与Queue的示例分析.doc》

下载本文的Word格式文档,以方便收藏与打印。