gpt4 book ai didi

java - 如何在 ArrayList 中设置对象变量的值

转载 作者:搜寻专家 更新时间:2023-11-01 01:08:15 26 4
gpt4 key购买 nike

我正在完成一项任务,我必须:

  1. 创建一个具有以下属性/变量的 Employee 类:名称年龄部门

  2. 创建一个名为 Department 的类,其中包含员工列表。

    一个。 Department 类将有一个方法返回按年龄排序的员工。

    Department 的值只能是以下之一:

    • “会计”
    • “营销”
    • “人力资源”
    • “信息系统”

我正在努力弄清楚如何完成 2b。这是我目前所拥有的:

import java.util.*;

public class Employee {
String name;
int age;
String department;

Employee (String name, int age, String department) {
this.name = name;
this.age = age;
this.department = department;

}
int getAge() {
return age;
}
}

class Department {
public static void main(String[] args) {
List<Employee>empList = new ArrayList<Employee>();

Collections.sort (empList, new Comparator<Employee>() {
public int compare (Employee e1, Employee e2) {
return new Integer (e1.getAge()).compareTo(e2.getAge());
}
});
}
}

最佳答案

您可以出于相同的目的使用枚举,这将限制您仅使用指定的值。声明你的 Department 枚举如下

public enum Department {

Accounting, Marketting, Human_Resources, Information_Systems

}

你的 Employee 类现在可以是

public class Employee {
String name;
int age;
Department department;

Employee(String name, int age, Department department) {
this.name = name;
this.age = age;
this.department = department;

}

int getAge() {
return age;
}
}

在创建员工时,您可以使用

Employee employee = new Employee("Prasad", 47, Department.Information_Systems);
按照 Adrian Shum 的建议

编辑,当然因为这是一个很好的建议。

  • 枚举是常量,这就是为什么根据 Java 约定以大写字母声明它的好处。
  • 但我们不希望看到枚举的大写表示形式,因此我们可以创建枚举构造函数并将可读信息传递给它。
  • 我们将修改枚举以包含 toString() 方法和采用字符串参数的 constructor

     public enum Department {

    ACCOUNTING("Accounting"), MARKETTING("Marketting"), HUMAN_RESOURCES(
    "Human Resources"), INFORMATION_SYSTEMS("Information Systems");

    private String deptName;

    Department(String deptName) {
    this.deptName = deptName;
    }

    @Override
    public String toString() {
    return this.deptName;
    }

    }

所以当我们创建一个 Employee 对象并使用它时,

Employee employee = new Employee("Prasad Kharkar", 47, Department.INFORMATION_SYSTEMS);
System.out.println(employee.getDepartment());

我们将得到一个可读的字符串表示形式,如 Information Systems,因为它由 toString() 方法返回,该方法由 System.out.println( ) 语句。阅读关于 Enumerations 的好教程

关于java - 如何在 ArrayList 中设置对象变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com