使用java的栈实现以3个队列分别保留手机最近10个“未接来电”、“已接来电”、“以拨电话”,并输出结果
时间: 2024-01-21 12:04:57 浏览: 37
以下是使用 Java 栈实现以 3 个队列分别保留手机最近 10 个“未接来电”、“已接来电”、“以拨电话”的示例代码:
```java
import java.util.Stack;
public class PhoneCallQueue {
private Stack<String> missedCallStack;
private Stack<String> receivedCallStack;
private Stack<String> dialedCallStack;
public PhoneCallQueue() {
missedCallStack = new Stack<>();
receivedCallStack = new Stack<>();
dialedCallStack = new Stack<>();
}
public void addMissedCall(String phoneNumber) {
if (missedCallStack.size() >= 10) {
missedCallStack.remove(0);
}
missedCallStack.push(phoneNumber);
}
public void addReceivedCall(String phoneNumber) {
if (receivedCallStack.size() >= 10) {
receivedCallStack.remove(0);
}
receivedCallStack.push(phoneNumber);
}
public void addDialedCall(String phoneNumber) {
if (dialedCallStack.size() >= 10) {
dialedCallStack.remove(0);
}
dialedCallStack.push(phoneNumber);
}
public void printMissedCalls() {
System.out.println("Missed Calls:");
for (String phoneNumber : missedCallStack) {
System.out.println(phoneNumber);
}
}
public void printReceivedCalls() {
System.out.println("Received Calls:");
for (String phoneNumber : receivedCallStack) {
System.out.println(phoneNumber);
}
}
public void printDialedCalls() {
System.out.println("Dialed Calls:");
for (String phoneNumber : dialedCallStack) {
System.out.println(phoneNumber);
}
}
public static void main(String[] args) {
PhoneCallQueue phoneCallQueue = new PhoneCallQueue();
phoneCallQueue.addMissedCall("1234567890");
phoneCallQueue.addMissedCall("2345678901");
phoneCallQueue.addMissedCall("3456789012");
phoneCallQueue.addReceivedCall("4567890123");
phoneCallQueue.addReceivedCall("5678901234");
phoneCallQueue.addDialedCall("6789012345");
phoneCallQueue.addDialedCall("7890123456");
phoneCallQueue.printMissedCalls();
phoneCallQueue.printReceivedCalls();
phoneCallQueue.printDialedCalls();
}
}
```
这个示例代码中,我们使用了 Java 的 Stack 类来实现栈,每个栈都是用于存储一个电话队列。在 PhoneCallQueue 类中,我们定义了 addMissedCall、addReceivedCall 和 addDialedCall 方法,它们分别用于将未接来电、已接来电和以拨电话添加到相应的队列中。如果队列中已经有 10 个电话,我们会移除最早的一个电话。我们还定义了 printMissedCalls、printReceivedCalls 和 printDialedCalls 方法,用于输出相应队列中的电话号码。在示例程序的 main 方法中,我们添加了一些电话到队列中,并输出了每个队列中的电话号码。