淘先锋技术网

首页 1 2 3 4 5 6 7

栈(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中的栈和队列实现逆序存储数字是非常简单的。其中,栈和队列的区别在于栈的存取方式是先进后出,而队列的存取方式是先进先出。