如何在Java中实现通讯录管理

首先设计Contact类封装姓名、电话、邮箱,再通过AddressBook类使用ArrayList实现增删改查功能,最后在主类中测试添加、查询、删除联系人并遍历显示,构成基础通讯录系统。

在Java中实现通讯录管理,核心是通过面向对象的方式设计联系人信息结构,并结合集合类来存储和操作数据。下面是一个简单实用的实现思路,适合初学者理解和扩展。

定义联系人类(Contact)

每个联系人包含基本信息,如姓名、电话、邮箱等。将其封装为一个类,便于管理。

  • 使用私有字段保护数据安全
  • 提供构造方法和getter/setter方法

示例代码:

public class Con

tact {
    private String name;
    private String phone;
    private String email;

    public Contact(String name, String phone, String email) {
        this.name = name;
        this.phone = phone;
        this.email = email;
    }

    // Getter 和 Setter 方法
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getPhone() { return phone; }
    public void setPhone(String phone) { this.phone = phone; }
    public String getEmail() { return email; }
    public void setEmail(String email) { this.email = email; }

    @Override
    public String toString() {
        return "姓名:" + name + ", 电话:" + phone + ", 邮箱:" + email;
    } }

设计通讯录管理类(AddressBook)

使用ArrayList存储多个联系人,提供增删改查功能。

  • 添加联系人:检查重名或直接添加
  • 删除联系人:根据姓名匹配移除
  • 查找联系人:按姓名模糊或精确搜索
  • 显示所有联系人:遍历输出

示例代码片段:

import java.util.ArrayList;
import java.util.List;

public class AddressBook {
    private List contacts = new ArrayList();

    public void addContact(Contact contact) {
        contacts.add(contact);
        System.out.println("联系人已添加:" + contact.getName());
    }

    public void deleteContact(String name) {
        boolean removed = contacts.removeIf(c -> c.getName().equals(name));
        if (removed) {
            System.out.println("已删除联系人:" + name);
        } else {
            System.out.println("未找到联系人:" + name);
        }
    }

    public void searchContact(String name) {
        for (Contact c : contacts) {
            if (c.getName().contains(name)) {
                System.out.println(c);
            }
        }
    }

    public void displayAll() {
        if (contacts.isEmpty()) {
            System.out.println("通讯录为空。");
        } else {
            for (Contact c : contacts) {
                System.out.println(c);
            }
        }
    } }

主程序测试功能

创建测试类,模拟用户操作流程。

public class Main {
    public static void main(String[] args) {
        AddressBook book = new AddressBook();

        Contact c1 = new Contact("张三", "13800138000", "zhangsan@email.com");
        Contact c2 = new Contact("李四", "13900139000", "lisi@email.com");

        book.addContact(c1);
        book.addContact(c2);

        book.displayAll();

        book.searchContact("张");

        book.deleteContact("李四");
    } }

基本上就这些。这个实现虽然简单,但涵盖了Java中类设计、集合操作和基本逻辑控制。后续可以加入文件读写保存数据,或者用HashMap优化查找效率,甚至加上图形界面增强交互性。不复杂但容易忽略细节,比如空值判断和输入验证。