import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Employee {

    private String name;
    private int age;
    private BigDecimal salary;
    private Date hireDate;

    public Employee(String name, int age, BigDecimal salary, Date hireDate) {
        this.name = name;
        this.age = age;
        this.salary = salary;
        this.hireDate = hireDate;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public BigDecimal getSalary() {
        return salary;
    }

    public void setSalary(BigDecimal salary) {
        this.salary = salary;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public static void main(String[] args) throws ParseException {
        String data = 'name=小红&age=17&salary=8000.00&hireDate=1991-07-03;' +
                'name=小明&age=23&salary=10000.00&hireDate=1992-12-11;' +
                'name=小白&age=18&salary=12000.00&hireDate=1996-01-09';

        String[] employeesData = data.split(';');

        List<Employee> employees = new ArrayList<>();

        SimpleDateFormat dateFormat = new SimpleDateFormat('yyyy-MM-dd');

        for (String employeeData : employeesData) {
            String[] attributes = employeeData.split('&');

            String name = attributes[0].split('=')[1];
            int age = Integer.parseInt(attributes[1].split('=')[1]);
            BigDecimal salary = new BigDecimal(attributes[2].split('=')[1]);
            Date hireDate = dateFormat.parse(attributes[3].split('=')[1]);
            employees.add(new Employee(name, age, salary, hireDate));
        }

        BigDecimal totalSalary = BigDecimal.ZERO;
        for (Employee employee : employees) {
            if (employee.getHireDate().before(dateFormat.parse('1996-01-01'))) {
                totalSalary = totalSalary.add(employee.getSalary());
            }
        }

        BigDecimal averageSalary = totalSalary.divide(BigDecimal.valueOf(employees.size()), 2, BigDecimal.ROUND_HALF_UP);
        System.out.println('1996 年前入职的员工的平均薪资为: ' + averageSalary);
    }
}

这段代码定义了一个 Employee 类,包含了员工的姓名、年龄、薪资和入职日期等属性。代码还演示了如何从字符串中解析员工信息并创建 Employee 对象,最后计算了 1996 年前入职员工的平均薪资。

代码分析:

  1. 首先,定义了一个 Employee 类,包含了 nameagesalaryhireDate 属性,以及相应的 getter 和 setter 方法。
  2. main 方法中,首先定义了一个字符串 data,包含了多个员工的信息,以 ; 分隔,每个员工的信息以 & 分隔。
  3. 接着,使用 split 方法将 data 分割成多个员工信息字符串。
  4. 然后,使用循环遍历每个员工信息字符串,使用 split 方法将每个员工信息字符串分割成多个属性值。
  5. 接着,根据属性值创建 Employee 对象,并将其添加到 employees 列表中。
  6. 最后,使用循环遍历 employees 列表,计算 1996 年前入职员工的总薪资,并根据总薪资和员工数量计算平均薪资,并将结果输出到控制台。

代码示例说明:

这段代码展示了如何使用 Java 语言定义类、创建对象以及处理字符串等基本操作,也展示了如何使用 Date 类处理日期信息。同时,代码也展示了如何使用 BigDecimal 类进行精确的数值计算。

建议:

为了提高代码的可读性和可维护性,建议使用更具描述性的变量名,并添加必要的注释来解释代码的功能。此外,可以使用更强大的数据结构和算法来提高代码的效率。

Java Employee 类实现和平均薪资计算示例

原文地址: https://www.cveoy.top/t/topic/pZHw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录