栈(Stack)和队列(Queue)是Java中常用的数据结构之一,可以用来实现很多实际问题的解决方案。下面我们通过一个简单的实验来学习如何使用Java中的栈和队列。
假设现在有一个由数字组成的字符串,我们需要将其中的数字按顺序逆序存储起来。我们可以通过以下两种方式来实现:
1.使用栈:将数字逐一压入栈中,再逐一弹出,即可实现逆序存储。
import java.util.Stack; public class StackDemo { public static void main(String[] args) { String str = "1234567890"; Stackstack = new Stack<>(); for (int i = 0; i< str.length(); i++) { stack.push(str.charAt(i)); } StringBuffer buffer = new StringBuffer(); while (!stack.isEmpty()) { buffer.append(stack.pop()); } System.out.println(buffer.toString()); } }
2.使用队列:将数字逐一加入队列,然后逐一取出,即可获得逆序存储的数字。
import java.util.LinkedList; import java.util.Queue; public class QueueDemo { public static void main(String[] args) { String str = "1234567890"; Queuequeue = new LinkedList<>(); for (int i = 0; i< str.length(); i++) { queue.offer(str.charAt(i)); } StringBuffer buffer = new StringBuffer(); while (!queue.isEmpty()) { buffer.append(queue.poll()); } System.out.println(buffer.toString()); } }
从上述代码中可以看出,使用Java中的栈和队列实现逆序存储数字是非常简单的。其中,栈和队列的区别在于栈的存取方式是先进后出,而队列的存取方式是先进先出。