利用Java集合类和文件类实现一个简易的通讯录程序,实现基本的增删改查,要求: 考虑并选择合适的集合类; 利用文件实现通信录数据的存储和载入; 要求有简单的功能菜单,通过键盘输入调用对应增删改查
时间: 2024-10-21 18:12:05 浏览: 13
在Java中,我们可以使用HashMap或ArrayList等集合类来实现一个简易的通讯录程序。HashMap适用于关联键值对,而ArrayList则适合有序元素的存储。这里我们选择HashMap,因为它方便查找联系人姓名。
首先,我们需要创建一个Contact类来代表联系人信息,包含姓名、电话号码等属性:
```java
public class Contact {
private String name;
private String phoneNumber;
// 构造函数、getter和setter方法省略
}
```
接下来,我们将创建一个ContactManager类,它将处理文件操作和用户交互:
```java
import java.io.*;
import java.util.*;
class ContactManager {
private Map<String, Contact> contacts = new HashMap<>();
// 读取文件方法
void loadContacts(String fileName) {
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split(",");
Contact contact = new Contact(parts[0], parts[1]);
contacts.put(contact.getName(), contact);
}
} catch (IOException e) {
System.out.println("Error loading contacts: " + e.getMessage());
}
}
// 写入文件方法
void saveContacts(String fileName) {
try (PrintWriter pw = new PrintWriter(new FileWriter(fileName))) {
for (Contact contact : contacts.values()) {
pw.println(contact.getName() + "," + contact.getPhoneNumber());
}
} catch (IOException e) {
System.out.println("Error saving contacts: " + e.getMessage());
}
}
// 其他方法如addContact, deleteContact, updateContact等
// 比如:
public void addContact(Contact contact) {
contacts.put(contact.getName(), contact);
saveContacts(fileName);
}
// 省略其他类似的方法...
}
```
最后,你可以设计一个简单的命令行界面让用户交互:
```java
public static void main(String[] args) {
ContactManager manager = new ContactManager();
manager.loadContacts("contacts.txt");
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1. 添加联系人");
System.out.println("2. 删除联系人");
// ... 其他选项
int choice = scanner.nextInt();
switch (choice) {
case 1:
// 用户输入姓名和电话,创建Contact并添加
break;
case 2:
// 用户输入姓名删除对应的联系人
break;
// 更多case... 和相应的错误处理
}
}
}
```
阅读全文