Java 按年龄方法排序,并在类中列出
我在这里尝试刷新我的java技能。我正在做一个简单的java作业。下面是前两个说明Java 按年龄方法排序,并在类中列出,java,Java,我在这里尝试刷新我的java技能。我正在做一个简单的java作业。下面是前两个说明 创建具有以下属性/变量的Employee类: 名称 年龄 系 创建一个名为Department的类,该类将包含员工列表 a) Department类将有一个方法返回按年龄排序的员工 b) 部门的值只能是以下值之一: “会计” “市场营销” “人力资源” “信息系统” 我在第二步有点小麻烦。我需要帮助了解如何添加员工列表,如上面所说的,以及如何编写将通过按年龄排序员工返回的方法 我只想找个人解释一下怎么做。谢谢 到
我只想找个人解释一下怎么做。谢谢 到目前为止,我有这个 员工类别:
package simpleJavaAssignment;
public class Employee {
String name;
int age;
Department department;
Employee(String n, int a, Department d)
{
this.name = n;
this.age = a;
this.department = d;
}
int gAge(){
return age;
}
}
系级:
package simpleJavaAssignment;
import java.util.*;
public enum Department {
ACCOUNTING("Accounting"), MARKETING("Marketing"), HUMAN_RESOURCES(
"Human Resources"), INFORMATION_SYSTEMS("Information Systems");
private String deptName;
Department(String deptName) {
this.deptName = deptName;
}
@Override
public String toString() {
return this.deptName;
}
}
你已经有了一个解决方案的开端,但你还差得很远 您的
部门
类(应该是类而不是枚举)应该包含员工
对象的集合。在你的项目中,应该有一个顶级部门的集合
至于排序,你应该看看界面。您实现了Comparator
的自定义子类,该子类允许内置集合排序算法比较员工实例,从而实现所需的顺序
public class EmployeeAgeComparator implements Comparator<Employee>
{
public int compare(Employee e)
{
return (this.age < e.age)
? -1
: (this.age > e.age)
? +1
: 0;
}
}
public类EmployeeAgeComparator实现Comparator
{
公共整数比较(雇员e)
{
返回(this.agee.age)
? +1
: 0;
}
}
如果该
员工小于e
,则返回-1
,如果他们年龄相同,则返回0,如果该员工年龄较大,则返回+1
。您已经有了解决方案的开端,但您还有很长的路要走
您的部门
类(应该是类而不是枚举)应该包含员工
对象的集合。在你的项目中,应该有一个顶级部门的集合
至于排序,你应该看看界面。您实现了Comparator
的自定义子类,该子类允许内置集合排序算法比较员工实例,从而实现所需的顺序
public class EmployeeAgeComparator implements Comparator<Employee>
{
public int compare(Employee e)
{
return (this.age < e.age)
? -1
: (this.age > e.age)
? +1
: 0;
}
}
public类EmployeeAgeComparator实现Comparator
{
公共整数比较(雇员e)
{
返回(this.agee.age)
? +1
: 0;
}
}
如果该员工小于e
,则返回-1
,如果他们年龄相同,则返回0,如果该员工年龄较大,则返回+1
。您可以在将员工添加到列表时按年龄排序员工列表。
然后,当您想要获取列表时,只需返回它
您不应该在Employee
类中包含Department
成员,相反,Department
类应该包含Employee
的列表
package simpleJavaAssignment;
import java.util.*;
public class Department {
private String deptName;
private ArrayList<Employee> employees;
Department(String deptName) {
this.deptName = deptName;
this.employees = new ArrayList<Employee>();
}
public String toString() {
return this.deptName;
}
public void addEmployee(Employee a){
if( employees.isEmpty())
employees.add(a);
else
{
int i;
for( i = 0; i < employees.size(); ++i ){
if( employees.get(i).gAge() > a.gAge() ){
employees.add(i, a);
break;
}
}
if( i == employees.size() )
employees.add(a);
}
}
public ArrayList<Employee> getEmployees(){
return employees;
}
}
package-simpleJavaAssignment;
导入java.util.*;
公共课系{
私有字符串deptName;
私人ArrayList员工;
部门(字符串部门名称){
this.deptName=deptName;
this.employees=new ArrayList();
}
公共字符串toString(){
返回此.deptName;
}
公共无效添加员工(员工a){
if(employees.isEmpty())
加入(a);
其他的
{
int i;
对于(i=0;ia.gAge()){
增加(i,a);
打破
}
}
如果(i==employees.size())
加入(a);
}
}
公共阵列列表getEmployees(){
返回员工;
}
}
将员工添加到列表中时,可以将员工列表设置为按年龄排序。
然后,当您想要获取列表时,只需返回它
您不应该在Employee
类中包含Department
成员,相反,Department
类应该包含Employee
的列表
package simpleJavaAssignment;
import java.util.*;
public class Department {
private String deptName;
private ArrayList<Employee> employees;
Department(String deptName) {
this.deptName = deptName;
this.employees = new ArrayList<Employee>();
}
public String toString() {
return this.deptName;
}
public void addEmployee(Employee a){
if( employees.isEmpty())
employees.add(a);
else
{
int i;
for( i = 0; i < employees.size(); ++i ){
if( employees.get(i).gAge() > a.gAge() ){
employees.add(i, a);
break;
}
}
if( i == employees.size() )
employees.add(a);
}
}
public ArrayList<Employee> getEmployees(){
return employees;
}
}
package-simpleJavaAssignment;
导入java.util.*;
公共课系{
私有字符串deptName;
私人ArrayList员工;
部门(字符串部门名称){
this.deptName=deptName;
this.employees=new ArrayList();
}
公共字符串toString(){
返回此.deptName;
}
公共无效添加员工(员工a){
if(employees.isEmpty())
加入(a);
其他的
{
int i;
对于(i=0;ia.gAge()){
增加(i,a);
打破
}
}
如果(i==employees.size())
加入(a);
}
}
公共阵列列表getEmployees(){
返回员工;
}
}
作为设计点,您可能不应该对部门类型使用enum
,因为它们可能会相对频繁地更改。另外,你所说的部门仅仅是一个部门的名称Department
应该是一个包含Employee
对象集合的类。让Employee类实现Comparator接口远(b)来说,您只需要在setter中为Department
变量提供一些验证。提供允许的部门字符串的静态集合,并在使用