Java使用3个队列分别保留手机最近10个“未接来电”、“已接来电”、“以拨电话”的代码和运行结果,并给出详细注释
时间: 2023-11-14 07:04:36 浏览: 56
以下是Java使用3个队列分别保留手机最近10个“未接来电”、“已接来电”、“以拨电话”的代码和运行结果,并给出详细注释:
```java
import java.util.LinkedList;
import java.util.Queue;
public class PhoneCallLogs {
private Queue<String> missedCalls;
private Queue<String> receivedCalls;
private Queue<String> dialedCalls;
public PhoneCallLogs() {
missedCalls = new LinkedList<>();
receivedCalls = new LinkedList<>();
dialedCalls = new LinkedList<>();
}
public void addMissedCall(String number) {
missedCalls.offer(number); // 将未接来电号码添加到队列末尾
if (missedCalls.size() > 10) {
missedCalls.poll(); // 如果队列长度超过10个,则移除队列头部元素
}
}
public void addReceivedCall(String number) {
receivedCalls.offer(number); // 将已接来电号码添加到队列末尾
if (receivedCalls.size() > 10) {
receivedCalls.poll(); // 如果队列长度超过10个,则移除队列头部元素
}
}
public void addDialedCall(String number) {
dialedCalls.offer(number); // 将已拨电话号码添加到队列末尾
if (dialedCalls.size() > 10) {
dialedCalls.poll(); // 如果队列长度超过10个,则移除队列头部元素
}
}
public void printMissedCalls() {
System.out.println("未接来电:");
for (String number : missedCalls) {
System.out.println(number);
}
}
public void printReceivedCalls() {
System.out.println("已接来电:");
for (String number : receivedCalls) {
System.out.println(number);
}
}
public void printDialedCalls() {
System.out.println("已拨电话:");
for (String number : dialedCalls) {
System.out.println(number);
}
}
public static void main(String[] args) {
PhoneCallLogs logs = new PhoneCallLogs();
logs.addMissedCall("1234567890");
logs.addMissedCall("2345678901");
logs.addMissedCall("3456789012");
logs.addMissedCall("4567890123");
logs.addMissedCall("5678901234");
logs.addMissedCall("6789012345");
logs.addMissedCall("7890123456");
logs.addMissedCall("8901234567");
logs.addMissedCall("9012345678");
logs.addMissedCall("0123456789");
logs.addMissedCall("1234567890"); // 超过10个,移除第一个
logs.addReceivedCall("2345678901");
logs.addReceivedCall("3456789012");
logs.addReceivedCall("4567890123");
logs.addReceivedCall("5678901234");
logs.addReceivedCall("6789012345");
logs.addReceivedCall("7890123456");
logs.addReceivedCall("8901234567");
logs.addReceivedCall("9012345678");
logs.addReceivedCall("0123456789");
logs.addReceivedCall("1234567890"); // 超过10个,移除第一个
logs.addDialedCall("3456789012");
logs.addDialedCall("4567890123");
logs.addDialedCall("5678901234");
logs.addDialedCall("6789012345");
logs.addDialedCall("7890123456");
logs.addDialedCall("8901234567");
logs.addDialedCall("9012345678");
logs.addDialedCall("0123456789");
logs.addDialedCall("1234567890");
logs.addDialedCall("2345678901"); // 超过10个,移除第一个
logs.printMissedCalls();
logs.printReceivedCalls();
logs.printDialedCalls();
}
}
```
运行结果:
```
未接来电:
2345678901
3456789012
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678
0123456789
1234567890
已接来电:
2345678901
3456789012
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678
0123456789
1234567890
已拨电话:
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678
0123456789
1234567890
2345678901
```
注释:
1. `Queue` 是 Java 中的队列接口,它有两个常用的实现类:`LinkedList` 和 `ArrayDeque`。
2. 在本例中,我们使用 `LinkedList` 实现队列。
3. `addMissedCall` 方法将未接来电号码加入到 `missedCalls` 队列末尾,并检查队列长度是否超过10个,如果超过,则移除队列头部元素。
4. `addReceivedCall` 方法将已接来电号码加入到 `receivedCalls` 队列末尾,并检查队列长度是否超过10个,如果超过,则移除队列头部元素。
5. `addDialedCall` 方法将已拨电话号码加入到 `dialedCalls` 队列末尾,并检查队列长度是否超过10个,如果超过,则移除队列头部元素。
6. `printMissedCalls` 方法打印未接来电队列中的所有元素。
7. `printReceivedCalls` 方法打印已接来电队列中的所有元素。
8. `printDialedCalls` 方法打印已拨电话队列中的所有元素。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)