java使用链表定义一个通信录类实现增删改查并记录操作

题目描述

使用链表定义一个通信录类,要求:

每个记录包括姓名和联系电话;实现记录的添加、删除、修改操作

实现查找操作(输入姓名,输出联系电话)

记录输出,输出全部记录、输出查询记录

编写一个测试程序,对通信录类中各方法进行测试

源代码

import java.util.LinkedList;

public class AddressBook {
    private LinkedList<Contact> contacts;

    public AddressBook() {
        contacts = new LinkedList<>();
    }

    public void addContact(String name, String phoneNumber) {
        Contact contact = new Contact(name, phoneNumber);
        contacts.add(contact);
    }

    public void deleteContact(String name) {
        for (int i = 0; i < contacts.size(); i++) {
            Contact contact = contacts.get(i);
            if (contact.getName().equals(name)) {
                contacts.remove(i);
                break;
            }
        }
    }

    public void modifyContact(String name, String newPhoneNumber) {
        for (int i = 0; i < contacts.size(); i++) {
            Contact contact = contacts.get(i);
            if (contact.getName().equals(name)) {
                contact.setPhoneNumber(newPhoneNumber);
                break;
            }
        }
    }

    public String searchContact(String name) {
        for (int i = 0; i < contacts.size(); i++) {
            Contact contact = contacts.get(i);
            if (contact.getName().equals(name)) {
                return contact.getPhoneNumber();
            }
        }
        return null;
    }

    public void displayAllContacts() {
        System.out.println("通信录中的全部记录:");
        for (int i = 0; i < contacts.size(); i++) {
            Contact contact = contacts.get(i);
            System.out.println("姓名:" + contact.getName());
            System.out.println("联系电话:" + contact.getPhoneNumber());
            System.out.println("----------------");
        }
    }

    public void displaySearchResult(String name) {
        String phoneNumber = searchContact(name);
        if (phoneNumber != null) {
            System.out.println("查询结果:");
            System.out.println("姓名:" + name);
            System.out.println("联系电话:" + phoneNumber);
        } else {
            System.out.println("未找到与姓名匹配的记录。");
        }
    }

    public static void main(String[] args) {
        AddressBook addressBook = new AddressBook();
        addressBook.addContact("张三", "1234567890");
        addressBook.addContact("李四", "9876543210");
        addressBook.addContact("王五", "1357924680");

        addressBook.displayAllContacts();
        System.out.println("----------------");

        addressBook.modifyContact("李四", "1111111111");
        addressBook.displayAllContacts();
        System.out.println("----------------");

        addressBook.deleteContact("张三");
        addressBook.displayAllContacts();
        System.out.println("----------------");

        addressBook.displaySearchResult("王五");
    }
}

class Contact {
    private String name;
    private String phoneNumber;

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

    public String getName() {
        return name;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}

在这个代码中,我们定义了一个AddressBook类,使用LinkedList作为通信录的数据结构,每个记录由Contact对象表示,包括姓名和联系电话。

AddressBook类提供了以下方法:

  • addContact:用于添加记录。
  • deleteContact:用于删除记录。
  • modifyContact:用于修改记录。
  • searchContact:用于查找记录,根据姓名返回对应的联系电话。
  • displayAllContacts:用于输出全部记录。
  • displaySearchResult:用于输出查询结果,根据姓名进行查询。

main方法中,我们创建一个AddressBook对象,添加了几条记录,并测试了各个方法的功能。

运行截图

图片[1]-java使用链表定义一个通信录类实现增删改查并记录操作-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享