Java-增删改查

在Java中,可以使用链表(LinkedList)或映射(HashMap)来实现CRUD操作,而不是直接与数据库进行交互

1. User类

这个类的作用是表示一个用户对象,包含用户的基本信息。

。下面是使用这两种数据结构来实现增删改查(CRUD)操作的示例。

class User {  
    private int id;          // 用户ID  
    private String name;     // 用户姓名  
    private String email;    // 用户电子邮件  

    // 构造器,用于创建用户对象  
    public User(int id, String name, String email) {  
        this.id = id;  
        this.name = name;  
        this.email = email;  
    }  

    // 获取用户ID  
    public int getId() {  
        return id;  
    }  

    // 获取用户姓名  
    public String getName() {  
        return name;  
    }  

    // 获取用户电子邮件  
    public String getEmail() {  
        return email;  
    }  

    // 设置用户姓名  
    public void setName(String name) {  
        this.name = name;  
    }  
    
    // 设置用户电子邮件  
    public void setEmail(String email) {  
        this.email = email;  
    }  

    // 重写toString方法,便于打印用户信息  
    @Override  
    public String toString() {  
        return "User{" +  
                "id=" + id +  
                ", name='" + name + '\'' +  
                ", email='" + email + '\'' +  
                '}';  
    }  
}

2. 使用LinkedList的CRUD示例

UserList类

这个类用来管理用户列表,使用LinkedList来存储用户数据。

import java.util.LinkedList;  
import java.util.List;  
import java.util.Scanner;  

class UserList {  
    private List<User> users = new LinkedList<>();  // 用户列表,使用LinkedList来存储  
    private int currentId = 1;                       // 当前用户ID的计数器  
    private Scanner scanner = new Scanner(System.in); // 创建Scanner实例,用于输入  

    // 创建用户  
    public void createUser() {  
        System.out.print("请输入用户姓名: ");  
        String name = scanner.nextLine(); // 读取用户姓名  
        System.out.print("请输入用户电子邮件: ");  
        String email = scanner.nextLine(); // 读取用户电子邮件  
        User user = new User(currentId++, name, email); // 创建用户  
        users.add(user); // 将新用户添加到列表中  
        System.out.println("用户已创建: " + user);  
    }  

    // 读取用户  
    public User getUser(int id) {  
        for (User user : users) {  
            if (user.getId() == id) {  
                return user; // 找到用户后返回  
            }  
        }  
        return null; // 如果未找到,返回null  
    }  

    // 更新用户  
    public void updateUser() {  
        System.out.print("请输入要更新的用户ID: ");  
        int id = scanner.nextInt();  
        scanner.nextLine(); // 处理换行符  
        User user = getUser(id);  
        if (user != null) {  
            System.out.print("请输入新的姓名 (当前: " + user.getName() + "): ");  
            String name = scanner.nextLine();  
            System.out.print("请输入新的电子邮件 (当前: " + user.getEmail() + "): ");  
            String email = scanner.nextLine();  
            user.setName(name);  
            user.setEmail(email);  
            System.out.println("用户已更新: " + user);  
        } else {  
            System.out.println("用户未找到。");  
        }  
    }  

    // 删除用户  
    public void deleteUser() {  
        System.out.print("请输入要删除的用户ID: ");  
        int id = scanner.nextInt();  
        users.removeIf(user -> user.getId() == id);  
        System.out.println("用户已删除 (ID: " + id + ")");  
    }  

    // 打印所有用户  
    public void printUsers() {  
        for (User user : users) {  
            System.out.println(user); // 打印用户信息  
        }  
    }  
}

3. 使用HashMap的CRUD示例

UserMap类

这个类用HashMap来管理用户,以用户ID作为键。

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

class UserMap {  
    private Map<Integer, User> userMap = new HashMap<>(); // 存储用户的HashMap  
    private int currentId = 1; // 当前用户ID的计数器  
    private Scanner scanner = new Scanner(System.in); // 创建Scanner实例,用于输入  

    // 创建用户  
    public void createUser() {  
        System.out.print("请输入用户姓名: ");  
        String name = scanner.nextLine(); // 读取用户姓名  
        System.out.print("请输入用户电子邮件: ");  
        String email = scanner.nextLine(); // 读取用户电子邮件  
        User user = new User(currentId++, name, email); // 创建用户  
        userMap.put(user.getId(), user); // 将新用户存入HashMap  
        System.out.println("用户已创建: " + user);  
    }  

    // 读取用户  
    public User getUser(int id) {  
        return userMap.get(id); // 根据ID取得用户对象  
    }  

    // 更新用户  
    public void updateUser() {  
        System.out.print("请输入要更新的用户ID: ");  
        int id = scanner.nextInt();  
        scanner.nextLine(); // 处理换行符  
        User user = userMap.get(id);  
        if (user != null) {  
            System.out.print("请输入新的姓名 (当前: " + user.getName() + "): ");  
            String name = scanner.nextLine();  
            System.out.print("请输入新的电子邮件 (当前: " + user.getEmail() + "): ");  
            String email = scanner.nextLine();  
            user.setName(name);  
            user.setEmail(email);  
            System.out.println("用户已更新: " + user);  
        } else {  
            System.out.println("用户未找到。");  
        }  
    }  

    // 删除用户  
    public void deleteUser() {  
        System.out.print("请输入要删除的用户ID: ");  
        int id = scanner.nextInt();  
        userMap.remove(id); // 根据ID从HashMap中移除用户  
        System.out.println("用户已删除 (ID: " + id + ")");  
    }  

    // 打印所有用户  
    public void printUsers() {  
        for (User user : userMap.values()) { // 遍历并打印所有用户  
            System.out.println(user);  
        }  
    }  
}

4. 主程序 Main

Main类中,我们将演示如何使用UserListUserMap进行CRUD操作。

public class Main {  
    public static void main(String[] args) {  
        // 使用 LinkedList  
        UserList userList = new UserList(); // 创建用户列表对象  
        userList.createUser("Alice", "alice@example.com"); // 添加用户Alice  
        userList.createUser("Bob", "bob@example.com"); // 添加用户Bob  
        userList.printUsers(); // 打印所有用户  
        
        userList.updateUser(1, "Alice Smith", "alice.smith@example.com"); // 更新用户Alice  
        userList.printUsers(); // 打印所有用户  
        
        userList.deleteUser(2); // 删除用户Bob  
        userList.printUsers(); // 打印所有用户  

        // 使用 HashMap  
        UserMap userMap = new UserMap(); // 创建用户映射对象  
        userMap.createUser("Charlie", "charlie@example.com"); // 添加用户Charlie  
        userMap.createUser("Dana", "dana@example.com"); // 添加用户Dana  
        userMap.printUsers(); // 打印所有用户  

        userMap.updateUser(1, "Charlie Brown", "charlie.brown@example.com"); // 更新用户Charlie  
        userMap.printUsers(); // 打印所有用户  

        userMap.deleteUser(2); // 删除用户Dana  
        userMap.printUsers(); // 打印所有用户  
    }  
}

总结

  1. User类:表示用户的数据模型,包含用户的基本信息和相关操作。
  2. UserList类:使用LinkedList来管理用户,支持按顺序添加、查找、更新和删除用户。
  3. UserMap类:使用HashMap来管理用户,通过ID快速访问用户,适合大量数据的读写场景。
  4. Main类:演示如何利用上述类进行用户的创建、查询、更新和删除操作。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值