模拟短消息接收和有关操作,最多存储20条短消息,所编写的程序应包含且不限于如下功能:
①短消息接收,如果短消息总数超出20条,则删除最早的短消息。
②短列表显示所有短消息。
③阅读任意一条短消息。
④删除任意一条短消息。
⑤消除所有短消息。
⑥具有操作功能菜单。
⑦短消息发送。
不知道你这个问题是否已经解决, 如果还没有解决的话:public class AddTwoNumbers {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//头结点
ListNode dummyHead = new ListNode(0);
ListNode p = l1;
ListNode q = l2;
ListNode current = dummyHead;
//进位
int carry = 0;
while (p != null || q != null) {
int x = (p != null) ? p.val : 0;
int y = (q != null) ? q.val : 0;
int sum = x + y + carry;
// carry = sum / 10;
carry = sum >= 10 ? 1 : 0;
current.next = new ListNode(sum % 10);
current = current.next;
if (p != null) {
p = p.next;
}
if (q != null) {
q = q.next;
}
}
if (carry > 0) {
current.next = new ListNode(carry);
}
return dummyHead.next;
}
public static void main(String[] args) {
// ListNode l1 = new ListNode(2);
// l1.next = new ListNode(4);
// l1.next.next = new ListNode(3);
//
// ListNode l2 = new ListNode(5);
// l2.next = new ListNode(6);
// l2.next.next = new ListNode(4);
ListNode l1 = new ListNode(9);
l1.next = new ListNode(9);
l1.next.next = new ListNode(9);
l1.next.next.next = new ListNode(9);
l1.next.next.next.next = new ListNode(9);
l1.next.next.next.next.next = new ListNode(9);
l1.next.next.next.next.next.next = new ListNode(9);
l1.next.next.next.next.next.next.next = new ListNode(9);
ListNode l2 = new ListNode(9);
l2.next = new ListNode(9);
l2.next.next = new ListNode(9);
l2.next.next.next = new ListNode(9);
AddTwoNumbers a = new AddTwoNumbers();
ListNode listNode = a.addTwoNumbers(l1, l2);
System.out.println(listNode);
}
}
public class ListNode{
int val;
ListNode next;
public ListNode(int x){
val=x;
}
}
首先,我们可以使用Java的数据结构来实现短消息功能模拟。以下是使用链表数据结构来实现的示例代码:
import java.util.LinkedList;
public class ShortMessageSimulator {
private LinkedList<String> messageList; // 链表用于存储短消息
public ShortMessageSimulator() {
messageList = new LinkedList<>();
}
public void receiveMessage(String message) {
if (messageList.size() >= 20) {
messageList.removeFirst(); // 当短消息总数超过20条时,删除最早的短消息
}
messageList.add(message);
}
public void displayMessageList() {
for (String message : messageList) {
System.out.println(message);
}
}
public void readMessage(int index) {
if (index >= 0 && index < messageList.size()) {
System.out.println(messageList.get(index));
} else {
System.out.println("Invalid message index");
}
}
public void deleteMessage(int index) {
if (index >= 0 && index < messageList.size()) {
messageList.remove(index);
System.out.println("Message deleted successfully");
} else {
System.out.println("Invalid message index");
}
}
public void clearMessages() {
messageList.clear();
System.out.println("All messages cleared");
}
public void showMenu() {
System.out.println("1. Receive message");
System.out.println("2. Display message list");
System.out.println("3. Read message");
System.out.println("4. Delete message");
System.out.println("5. Clear all messages");
System.out.println("6. Exit");
}
public void sendMessage(String message) {
receiveMessage(message);
System.out.println("Message sent successfully");
}
public static void main(String[] args) {
ShortMessageSimulator simulator = new ShortMessageSimulator();
boolean exit = false;
while (!exit) {
simulator.showMenu();
int choice = Integer.parseInt(System.console().readLine("Enter your choice: "));
switch (choice) {
case 1:
String message = System.console().readLine("Enter message: ");
simulator.receiveMessage(message);
break;
case 2:
simulator.displayMessageList();
break;
case 3:
int index = Integer.parseInt(System.console().readLine("Enter message index: "));
simulator.readMessage(index);
break;
case 4:
index = Integer.parseInt(System.console().readLine("Enter message index: "));
simulator.deleteMessage(index);
break;
case 5:
simulator.clearMessages();
break;
case 6:
exit = true;
break;
default:
System.out.println("Invalid choice");
}
}
}
}
这个示例代码使用了LinkedList来存储短消息,它可以自动进行扩容,因此没有限制短消息总数。receiveMessage方法用于接收短消息,并自动删除最早的短消息。displayMessageList方法用于显示所有的短消息。readMessage方法用于阅读任意一条短消息。deleteMessage方法用于删除任意一条短消息。clearMessages方法用于清空所有短消息。showMenu方法用于显示操作功能菜单,用户可以选择不同的操作。sendMessage方法用于发送新的短消息,实际上就是调用了receiveMessage方法。
你可以运行这段代码来测试短消息功能模拟的各个功能。请确保在运行代码之前已经正确安装并配置好Java环境。你可以根据需要自定义菜单和进行其他的优化和修改。