首页 > 编程语言 >用java代码实现部门表,用户表的对应关系,把用户放到对应的部门下面

用java代码实现部门表,用户表的对应关系,把用户放到对应的部门下面

时间:2023-07-19 22:34:31浏览次数:33  
标签:java name departmentList List 用户 public User new 对应

实现如下所示: 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 王立朝
 * @date 2023/7/19
 * @description:
 */
public class Test2 {
    public static void main(String[] args) {
        // 创建用户列表和部门列表
        List<User> userList = createUserList();
        List<Department> departmentList = createDepartmentList();

        // 创建一个映射,将部门ID和部门对象关联起来
        Map<Integer, Department> departmentMap = createDepartmentMap(departmentList);

        // 将用户放到对应部门下
        for (User user : userList) {
            int departmentId = user.getDepartmentId();
            if (departmentMap.containsKey(departmentId)) {
                Department department = departmentMap.get(departmentId);
                department.addUser(user);
            }
        }

        // 打印部门及其所属用户
        for (Department department : departmentList) {
            System.out.println("部门名称:" + department.getName());
            System.out.println("所属用户:");
            for (User user : department.getUsers()) {
                System.out.println(user.getName());
            }
            System.out.println("-------------------");
        }
    }

    // 创建用户列表
    private static List<User> createUserList() {
        List<User> userList = new ArrayList<>();
        userList.add(new User("User1", 1));
        userList.add(new User("User2", 2));
        userList.add(new User("User3", 1));
        userList.add(new User("User4", 3));
        userList.add(new User("User5", 2));
        return userList;
    }

    // 创建部门列表
    private static List<Department> createDepartmentList() {
        List<Department> departmentList = new ArrayList<>();
        departmentList.add(new Department(1, "部门A"));
        departmentList.add(new Department(2, "部门B"));
        departmentList.add(new Department(3, "部门C"));
        return departmentList;
    }

    // 创建部门ID与部门对象的映射
    private static Map<Integer, Department> createDepartmentMap(List<Department> departmentList) {
        Map<Integer, Department> departmentMap = new HashMap<>();
        for (Department department : departmentList) {
            departmentMap.put(department.getId(), department);
        }
        return departmentMap;
    }
}

// 用户类
class User {
    private String name;
    private int departmentId;

    public User(String name, int departmentId) {
        this.name = name;
        this.departmentId = departmentId;
    }

    public String getName() {
        return name;
    }

    public int getDepartmentId() {
        return departmentId;
    }
}

// 部门类
class Department {
    private int id;
    private String name;
    private List<User> users;

    public Department(int id, String name) {
        this.id = id;
        this.name = name;
        this.users = new ArrayList<>();
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public List<User> getUsers() {
        return users;
    }

    public void addUser(User user) {
        users.add(user);
    }
}

效果如下: 

部门名称:部门A
所属用户:
User1
User3
-------------------
部门名称:部门B
所属用户:
User2
User5
-------------------
部门名称:部门C
所属用户:
User4
-------------------

 

标签:java,name,departmentList,List,用户,public,User,new,对应
From: https://www.cnblogs.com/wanglichaoya/p/17566955.html

相关文章

  • JavaScript学习笔记01(包含ES6语法)
    Js简介什么是Js?Js最初被创建的目的是“使网页更生动”。Js写出来的程序被称为脚本,Js是一门脚本语言。被直接写在网页的HTML中,在页面加载的时候自动执行脚本被以纯文本的形式提供和执行,不需要特殊的准备或编译即可运行(JINcompiler)Js不仅可以在浏览器中执行,也可以......
  • oracle用户密码过期导致归档日志文件无法删除
    问题描述:oracle用户密码过期导致归档日志文件无法删除.系统:rhel7.3场景描述:生产环境系统u01目录使用率超告警阀值,经确认为归档占用大量空间,系统中有自动清理归档日志文件的脚本,为什么没有清理呢?1、异常分析--查/var/log/cron日志文件异常告警信息:Jul1001:00:01hisdb01CR......
  • 【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
    问题描述JavaFunction在Azure上遇见中文显示乱码问题?如何解决呢? 问题解答中文字符显示为乱码,这个情况就是服务实例上设置的编码格式不是统一的UTF-8所导致的。在查看AzureAppService/FunctionApp的官方文档,都没有明确的说明它们使用的默认编码是什么,通过询问ChatGPT-4,也没有得......
  • Java基础语法(一)
    一、基本数据类型和String数据类型之间的运算(==注意:String是一个类,故而为引用数据类型==):1、String类的基本使用如下: Stringname="Wangyz"; System.out.println(name); //定义一个空的字符串 StringnullStr="";注意:String类和基本数据类型之间进行运算时只能进行连......
  • 【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
    问题描述JavaFunction在Azure上遇见中文显示乱码问题?如何解决呢? 问题解答中文字符显示为乱码,这个情况就是服务实例上设置的编码格式不是统一的UTF-8所导致的。在查看AzureAppService/FunctionApp的官方文档,都没有明确的说明它们使用的默认编码是什么,通过询问ChatGPT-4,也......
  • 根据表格生成java实体
    根据表格生成Java实体类在Java编程中,我们经常会遇到需要将表格中的数据映射到实体类的情况。这里我们来介绍一种常用的方法,即根据表格生成Java实体类。在开始之前,我们先来看一下表格的结构示例:字段名类型描述idint主键IDnameString姓名ageint年龄gende......
  • 根据url下载文件java后端
    根据URL下载文件的Java后端在开发Web应用程序时,经常需要从URL下载文件。Java后端使用URL连接和输入流可以轻松地实现文件下载功能。本文将介绍如何使用Java后端根据URL下载文件,并提供相应的代码示例。1.使用URL连接获取文件输入流使用Java的java.net包提供的URL类可以方便地与U......
  • 服务器上java项目数据库配置文件
    在服务器上配置Java项目数据库配置文件的流程概述在服务器上配置Java项目的数据库配置文件是非常重要的一步,它决定了项目与数据库的连接方式和相关配置信息。下面我将介绍整个配置流程,并附上相应的代码和注释,以便你能够顺利进行配置。配置步骤步骤操作1进入服务器......
  • 非java代码的微服务
    实现非Java代码的微服务简介微服务架构是一种将应用程序拆分成小的、独立的服务的方法。通常情况下,微服务被编写成多个不同的编程语言,以满足特定需求。在本文中,我将向你介绍如何实现非Java代码的微服务。流程概述下面是实现非Java代码的微服务的整体流程概述:步骤描述......
  • 大麦抢票 java
    大麦抢票Java简介大麦网是中国领先的综合性演出票务平台,为用户提供全面的票务信息和在线购票服务。而抢票则是指在演出票开售后,通过程序自动化的方式快速购买抢购热门演出票的过程。本文将介绍使用Java语言进行大麦抢票的实现方法。实现步骤1.登录大麦网首先,我们需要登录大......