在Java中如何实现简单通讯录_Java数组与集合综合实战

推荐使用ArrayList实现动态通讯录,因其底层基于数组且自动扩容,支持便捷的增删查操作;Contact类封装姓名、电话、邮箱字段,主程序提供菜单式交互功能。

用Java实现一个简单通讯录,核心是合理选择数据结构来管理联系人信息。数组适合固定人数场景,集合(如ArrayList)更灵活,支持动态增删。下面从设计、实现到操作,一步步讲清楚。

通讯录的数据结构设计

每个联系人至少包含姓名、电话、邮箱等字段,建议封装为独立类:

class Contact {
    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 方法略(实际开发中需补全)
    public String getName() { return name; }
    public String getPhone() { return phone; }
    public String getEmail() { return email; }

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

用ArrayList实现动态通讯录

推荐使用ArrayList——它底层基于数组,但自动扩容,增删查都方便,适合真实通讯录需求:

  • 初始化:ContactList contactList = new ArrayList();
  • 添加联系人:contactList.add(new Contact("张三", "13800138000", "zhangsan@xxx.com"));
  • 按姓名查找:遍历或用stream过滤,例如
    contactList.stream().filter(c -> c.getName().equals("张三")).findFirst().ifPresent(System.out::println);
  • 删除联系人:contactList.removeIf(c -> c.getName().equals("李四"));

用数组实现基础通讯录(适合教学演示)

若限定最多存10个联系人,可用Contact[]数组:

  • 声明并初始化:Contact[] contacts = new Contact[10];
  • 添加时需手动维护下标(如int size = 0),插入前判断

    是否已满
  • 查找/删除需循环遍历,删除后还要手动移动元素填补空位,代码较冗长
  • 优点是结构直观,有助于理解内存和索引概念;缺点是容量固定、操作易出错

基础功能整合示例(控制台交互)

主程序可提供菜单式操作,比如:

  • 1. 添加联系人
  • 2. 查看所有联系人
  • 3. 按姓名搜索
  • 4. 删除联系人
  • 0. 退出

每次操作对应调用ArrayList的add()、forEach()、stream().filter()、removeIf()等方法。注意输入校验(如手机号格式)、空列表提示、重复姓名处理等细节,会让程序更健壮。