详解Java如何使用集合来实现一个客户信息管理系统

详解Java如何使用集合来实现一个客户信息管理系统

1. 概述

在Java中,可以使用集合类来实现一个简单的客户信息管理系统。集合类提供了丰富的数据结构和操作方法,能够满足各种需求。

我们可以使用List或Set来存储客户信息,在程序中实现增删改查等操作。同时,我们可以利用Map来存储客户信息,实现键值对的存储,方便以后的查找和遍历。

2. 使用List实现一个客户信息管理系统

我们可以使用List来存储客户信息,同时利用Scanner类实现控制台输入,简单实现增删改查等操作。

在下面的示例代码中,我们定义一个Customer类,其中包含姓名和电话两个字段。接着,我们使用ArrayList来存储Customer对象,实现客户信息的管理。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class CustomerManagementSystem {
    private List<Customer> customers = new ArrayList<>();

    public static void main(String[] args) {
        CustomerManagementSystem system = new CustomerManagementSystem();
        system.run();
    }

    private void run() {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            displayMenu();

            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addCustomer(scanner);
                    break;
                case 2:
                    deleteCustomer(scanner);
                    break;
                case 3:
                    updateCustomer(scanner);
                    break;
                case 4:
                    queryCustomer(scanner);
                    break;
                case 5:
                    showCustomers();
                    break;
                case 6:
                    System.out.println("Goodbye!");
                    scanner.close();
                    System.exit(0);
                    break;
                default:
                    System.out.println("Invalid choice, please try again.");
                    break;
            }
        }
    }

    private void displayMenu() {
        System.out.println("-------- Customer Management System --------");
        System.out.println("1. Add customer");
        System.out.println("2. Delete customer");
        System.out.println("3. Update customer");
        System.out.println("4. Query customer");
        System.out.println("5. Show all customers");
        System.out.println("6. Exit");
        System.out.print("Please enter your choice: ");
    }

    private void addCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        System.out.print("Please enter customer phone: ");
        String phone = scanner.next();

        Customer customer = new Customer(name, phone);
        customers.add(customer);

        System.out.println("Add customer success!");
    }

    private void deleteCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        for (Iterator<Customer> iterator = customers.iterator(); iterator.hasNext();) {
            Customer customer = iterator.next();
            if (customer.getName().equals(name)) {
                iterator.remove();
                System.out.println("Delete customer success!");
                return;
            }
        }

        System.out.println("Customer not found!");
    }

    private void updateCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        for (Customer customer : customers) {
            if (customer.getName().equals(name)) {
                System.out.print("Please enter new customer phone: ");
                String phone = scanner.next();

                customer.setPhone(phone);
                System.out.println("Update customer success!");
                return;
            }
        }

        System.out.println("Customer not found!");
    }

    private void queryCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        for (Customer customer : customers) {
            if (customer.getName().equals(name)) {
                System.out.println(customer.toString());
                return;
            }
        }

        System.out.println("Customer not found!");
    }

    private void showCustomers() {
        for (Customer customer : customers) {
            System.out.println(customer.toString());
        }
    }
}

class Customer {
    private String name;
    private String phone;

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

    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;
    }

    @Override
    public String toString() {
        return String.format("Name: %s, Phone: %s", name, phone);
    }
}

在上述代码中,我们利用Scanner类获取控制台输入,并使用ArrayList来存储Customer对象。通过迭代器进行遍历,并实现增删改查等操作。

3. 使用Map实现一个客户信息管理系统

我们也可以使用Map来存储客户信息,同时实现键值对的存储,方便以后的查找和遍历。在下面的示例代码中,我们依旧定义一个Customer类,其中包含姓名和电话两个字段。接着,我们使用HashMap来存储Customer对象,并利用键值对存储客户信息。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class CustomerManagementSystem {
    private Map<String, Customer> customers = new HashMap<>();

    public static void main(String[] args) {
        CustomerManagementSystem system = new CustomerManagementSystem();
        system.run();
    }

    private void run() {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            displayMenu();

            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addCustomer(scanner);
                    break;
                case 2:
                    deleteCustomer(scanner);
                    break;
                case 3:
                    updateCustomer(scanner);
                    break;
                case 4:
                    queryCustomer(scanner);
                    break;
                case 5:
                    showCustomers();
                    break;
                case 6:
                    System.out.println("Goodbye!");
                    scanner.close();
                    System.exit(0);
                    break;
                default:
                    System.out.println("Invalid choice, please try again.");
                    break;
            }
        }
    }

    private void displayMenu() {
        System.out.println("-------- Customer Management System --------");
        System.out.println("1. Add customer");
        System.out.println("2. Delete customer");
        System.out.println("3. Update customer");
        System.out.println("4. Query customer");
        System.out.println("5. Show all customers");
        System.out.println("6. Exit");
        System.out.print("Please enter your choice: ");
    }

    private void addCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        System.out.print("Please enter customer phone: ");
        String phone = scanner.next();

        Customer customer = new Customer(name, phone);
        customers.put(name, customer);

        System.out.println("Add customer success!");
    }

    private void deleteCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        if (customers.containsKey(name)) {
            customers.remove(name);
            System.out.println("Delete customer success!");
        } else {
            System.out.println("Customer not found!");
        }
    }

    private void updateCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        if (customers.containsKey(name)) {
            System.out.print("Please enter new customer phone: ");
            String phone = scanner.next();

            Customer customer = new Customer(name, phone);
            customers.put(name, customer);

            System.out.println("Update customer success!");
        } else {
            System.out.println("Customer not found!");
        }
    }

    private void queryCustomer(Scanner scanner) {
        System.out.print("Please enter customer name: ");
        String name = scanner.next();

        if (customers.containsKey(name)) {
            Customer customer = customers.get(name);
            System.out.println(customer.toString());
        } else {
            System.out.println("Customer not found!");
        }
    }

    private void showCustomers() {
        for (String name : customers.keySet()) {
            System.out.println(customers.get(name).toString());
        }
    }
}

class Customer {
    private String name;
    private String phone;

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

    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;
    }

    @Override
    public String toString() {
        return String.format("Name: %s, Phone: %s", name, phone);
    }
}

在上述代码中,我们使用HashMap来存储Customer对象,通过键值对实现客户信息的存储和查找。同样的,我们通过Scanner类获取控制台输入,并实现增删改查等操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java如何使用集合来实现一个客户信息管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 在RedHat系统上安装JDK与Tomcat的步骤

    将在RedHat系统上安装JDK和Tomcat的步骤分为以下几个步骤: 下载JDK并安装 访问Oracle官网的下载页面:https://www.oracle.com/java/technologies/javase-jdk16-downloads.html,选择对应的版本并下载JDK的安装文件。 将下载后的文件上传到RedHat系统中合适的文件夹中,如/o…

    Java 2023年5月19日
    00
  • Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)

    针对“Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)”这个问题,我来给出完整的攻略。大致流程如下: 下载log4j-2.15.0.jar包 查找使用Log4j2进行日志记录的应用程序 停止应用程序 将原来的log4j-core jar包和log4j-api jar包替换成log4j-2.15.0.jar包 重新启动应用程序,…

    Java 2023年5月20日
    00
  • 一些实用的TAB效果

    一些实用的TAB效果可以通过CSS和JavaScript实现。下面为您提供详细的攻略和两个示例。 实现步骤 在HTML中创建一个元素,用来包含选项卡切换按钮和内容区域。 在CSS中为选项卡切换按钮和内容区域定义样式。 在JavaScript中编写代码,给每个选项卡按钮添加点击事件,动态切换内容区域的显示。 下面是两个示例: 示例一 该示例实现点击选项卡切换按…

    Java 2023年6月15日
    00
  • Java多线程之CAS算法实现线程安全

    Java多线程之CAS算法实现线程安全攻略 什么是CAS算法 CAS是英文单词Compare And Swap的缩写。CAS算法是一种无锁算法,它通过三个操作数:内存地址、旧的预期值和新值,当且仅当预期值和内存地址值相同时,才会将内存地址值更新为新值。CAS算法属于乐观锁技术的一种,线程不会阻塞,而是采用一种自旋的方式去检查更新,直到成功为止。 CAS算法的…

    Java 2023年5月19日
    00
  • JBuilder2005实战JSP之登录页面实现代码[图]

    标题:JBuilder2005实战JSP之登录页面实现代码攻略 介绍:本攻略将详细讲解如何使用JBuilder2005实现一个简单的登录页面,主要使用JSP和Servlet技术实现,其中包括页面布局、用户输入数据验证和数据库连接等内容。 步骤一:创建工程和页面 打开JBuilder2005,创建一个新的Web应用程序工程。 在工程目录下创建一个名为“logi…

    Java 2023年6月15日
    00
  • java Spring整合Freemarker的详细步骤

    下面我将详细讲解Java Spring整合Freemarker的详细步骤。 简介 首先,需要了解什么是Freemarker和Spring。Freemarker是一种模版引擎,它允许我们在我们的应用程序中使用模版来生成动态内容。Spring是一个Java框架,它可以帮助我们更轻松地构建和管理Java应用程序的组件。 步骤 以下是整合Spring和Freemar…

    Java 2023年5月19日
    00
  • Spring异常实现统一处理的方法

    下面我将详细讲解Spring异常实现统一处理的方法。 背景 在Spring应用程序中,系统可能会出现各种异常,如数据库连接异常、空指针异常等等。这些异常可能会导致应用程序崩溃或无法正常运行,对于程序员,处理这些异常非常重要。而在处理异常时,统一处理异常是一种最佳的方法。 实现步骤 第一步:全局异常处理类 编写一个全局异常处理类,该类应该用@Controlle…

    Java 2023年5月20日
    00
  • 一篇文章弄懂Java8中的时间处理

    一篇文章弄懂Java8中的时间处理 在Java8中,新增加了新的时间API,旨在解决以前日期和时间类的API存在的一些问题。本文将介绍如何使用Java8中的时间处理,包括时间表示、时间的计算和转换。 时间表示 Java8引入了新的时间类,代表了不同类型的日期时间。下面列出了其中一些常用的时间类: LocalDate:只包含日期,即年月日 LocalTime:…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部