Java 使用3个队列分别保留手机最近10个“未接来电”、“已接来电”、“以拨电话”。
时间: 2023-11-03 19:04:34 浏览: 39
可以使用Java的Queue接口实现这个功能,具体实现如下:
```java
import java.util.LinkedList;
import java.util.Queue;
public class PhoneCallHistory {
private Queue<String> missedCalls;
private Queue<String> receivedCalls;
private Queue<String> dialedCalls;
public PhoneCallHistory() {
missedCalls = new LinkedList<>();
receivedCalls = new LinkedList<>();
dialedCalls = new LinkedList<>();
}
public void addMissedCall(String phoneNumber) {
missedCalls.offer(phoneNumber);
if (missedCalls.size() > 10) {
missedCalls.poll();
}
}
public void addReceivedCall(String phoneNumber) {
receivedCalls.offer(phoneNumber);
if (receivedCalls.size() > 10) {
receivedCalls.poll();
}
}
public void addDialedCall(String phoneNumber) {
dialedCalls.offer(phoneNumber);
if (dialedCalls.size() > 10) {
dialedCalls.poll();
}
}
public void printHistory() {
System.out.println("Missed calls:");
for (String phoneNumber : missedCalls) {
System.out.println(phoneNumber);
}
System.out.println("Received calls:");
for (String phoneNumber : receivedCalls) {
System.out.println(phoneNumber);
}
System.out.println("Dialed calls:");
for (String phoneNumber : dialedCalls) {
System.out.println(phoneNumber);
}
}
}
```
在上面的代码中,我们定义了一个`PhoneCallHistory`类,它有三个队列,分别用于保存未接来电、已接来电和以拨电话。我们使用`addMissedCall`、`addReceivedCall`和`addDialedCall`方法来添加电话记录,每个方法都会将电话号码加入相应的队列中,并且如果队列的大小超过10,就会把队列头部的元素删除。最后,我们使用`printHistory`方法来打印所有的电话记录。