Java 使用3个队列分别保留手机最近10个“未接来电”、“已接来电”、“以拨电话”
时间: 2023-11-05 18:16:42 浏览: 39
下面是Java代码实现:
```java
import java.util.ArrayDeque;
import java.util.Queue;
public class PhoneCallQueue {
private Queue<String> missedCalls = new ArrayDeque<>();
private Queue<String> receivedCalls = new ArrayDeque<>();
private Queue<String> dialedCalls = new ArrayDeque<>();
public void addMissedCall(String number) {
missedCalls.offer(number);
if (missedCalls.size() > 10) {
missedCalls.poll();
}
}
public void addReceivedCall(String number) {
receivedCalls.offer(number);
if (receivedCalls.size() > 10) {
receivedCalls.poll();
}
}
public void addDialedCall(String number) {
dialedCalls.offer(number);
if (dialedCalls.size() > 10) {
dialedCalls.poll();
}
}
public void displayAllCalls() {
System.out.println("Missed calls:");
for (String number : missedCalls) {
System.out.println(number);
}
System.out.println("Received calls:");
for (String number : receivedCalls) {
System.out.println(number);
}
System.out.println("Dialed calls:");
for (String number : dialedCalls) {
System.out.println(number);
}
}
public static void main(String[] args) {
PhoneCallQueue phone = new PhoneCallQueue();
phone.addMissedCall("1234567890");
phone.addMissedCall("2345678901");
phone.addReceivedCall("3456789012");
phone.addReceivedCall("4567890123");
phone.addDialedCall("5678901234");
phone.addDialedCall("6789012345");
phone.displayAllCalls();
}
}
```
在这个实现中,我们使用了三个队列 `missedCalls`、`receivedCalls`、`dialedCalls` 分别保存未接来电、已接来电和已拨电话。每次添加新的号码时,我们都检查队列的大小是否超过了10个,如果超过了就从队头弹出一个元素。最后,我们编写了一个 `displayAllCalls()` 方法来打印出所有电话。在 `main()` 方法中,我们添加了一些测试数据并调用 `displayAllCalls()` 方法来验证实现的正确性。