Java是一種十分流行的編程語(yǔ)言,擁有眾多的應(yīng)用場(chǎng)景,其中一個(gè)應(yīng)用場(chǎng)景是對(duì)公司內(nèi)部的部門(mén)和人員進(jìn)行分組。下面我們來(lái)介紹一下Java如何實(shí)現(xiàn)對(duì)部門(mén)和人員分組:
public class Department { private String name; //部門(mén)名稱(chēng) private Listemployees; //部門(mén)員工 public Department(String name) { this.name = name; employees = new ArrayList (); } public void addEmployee(Employee employee) { employees.add(employee); } public List getEmployees() { return employees; } public String getName() { return name; } } public class Employee { private String name; //員工姓名 public Employee(String name) { this.name = name; } public String getName() { return name; } } public class GroupUtil { /** * 將員工按照部門(mén)分組 * * @param employees 員工列表 * @return 部門(mén)列表 */ public static List groupByDepartment(List employees) { List departments = new ArrayList (); Map departmentMap = new HashMap (); for (Employee employee : employees) { String departmentName = getDepartmentName(employee); Department department = departmentMap.get(departmentName); if (department == null) { department = new Department(departmentName); departmentMap.put(departmentName, department); departments.add(department); } department.addEmployee(employee); } return departments; } /** * 獲取員工所在的部門(mén) * * @param employee 員工 * @return 部門(mén)名稱(chēng) */ private static String getDepartmentName(Employee employee) { //TODO 根據(jù)具體的業(yè)務(wù)規(guī)則獲取員工所在的部門(mén)名稱(chēng) return "技術(shù)部"; } }
以上代碼中,我們定義了部門(mén)類(lèi)和員工類(lèi),部門(mén)類(lèi)包含了部門(mén)名稱(chēng)和員工列表,員工類(lèi)包含了員工姓名。我們還定義了一個(gè)工具類(lèi)GroupUtil,其中包含了一個(gè)對(duì)員工按照部門(mén)進(jìn)行分組的方法groupByDepartment,該方法接受一個(gè)員工列表作為參數(shù),返回一個(gè)部門(mén)列表。在groupByDepartment方法中,我們首先創(chuàng)建一個(gè)部門(mén)列表和一個(gè)部門(mén)Map,遍歷員工列表,獲取每個(gè)員工所在的部門(mén),如果該部門(mén)不存在,則創(chuàng)建一個(gè)新的部門(mén)并將其放入部門(mén)列表中,然后將員工添加到該部門(mén)的員工列表中。
通過(guò)以上代碼,我們可以很方便地對(duì)公司內(nèi)部的部門(mén)和人員進(jìn)行分組,改善公司內(nèi)部人員管理和組織架構(gòu)。