1

ここでJavaのスキルをリフレッシュしようとしています。私は単純なJavaの割り当てに取り組んでいます。以下は、最初の 2 つの指示です。

  1. 次の属性/変数を持つ Employee クラスを作成します: 名前 年齢 部門

  2. 従業員のリストを含む Department というクラスを作成します。

a) 部門クラスには、従業員を年齢順に返すメソッドがあります。

b) 部門の値は、次のいずれかの値のみにすることができます: 「会計」「マーケティング」「人事」「情報システム」</p>

ステップ 2 で少し問題があります。従業員のリストを追加する方法と、従業員を age 順に並べ替えて返されるメソッドを記述する方法を理解するのに助けが必要です。
誰かがこれを行う方法を説明したいと思います。ありがとう。

これまでのところ、私はこれを持っています。

従業員クラス:

 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;
   }

}
4

2 に答える 2

3

解決策の始まりはありますが、まだ道半ばです。

クラス (列挙Department型ではなくクラスである必要があります) には、Employeeオブジェクトのコレクションが含まれている必要があります。また、プログラムの最上位に部門のコレクションが必要です。

並べ替えに関しては、インターフェイスを確認する必要がありComparatorます。のカスタム サブクラスを実装してComparator、組み込みのコレクションの並べ替えアルゴリズムで Employee インスタンスを比較して、目的の順序が達成されるようにします。

public class EmployeeAgeComparator implements Comparator<Employee>
{
    public int compare(Employee e) 
    {
        return (this.age < e.age)
            ? -1
            : (this.age > e.age) 
                 ? +1
                 : 0;
    }
}

これは、これが より若い場合は を返し、同じ年齢の場合は 0を返し、これが古い場合はComparator契約を履行します。-1Employeee+1Employee

于 2013-08-21T00:23:38.580 に答える
1

従業員をリストに追加するときに、従業員のリストを年齢順に並べ替えることができます。次に、リストを取得したい場合は、それを返すだけです。

Departmentクラスにメンバーを含めないでください。Employee逆に、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;
    }

}
于 2013-08-21T00:44:27.153 に答える