0

従業員データをJavaコレクションに保存する必要があるという要件が1つあります

EmpId  EmpName EmpSalary
101     xxxxx    80000
101     yyyyy    40000
101     ddddd    60000 
101     zzzzz    80000

上記のように、それEmpIdintタイプでEmpNameあり、Stringタイプであり、EmpSalaryまたintタイプです。

私はそれらをJavaコレクションに保存することを計画していましたが、これは一般的なものかもしれません. 3 つのフィールドとそのセッターとゲッターを持つ pojo があります。

この要件に最適な Java コレクションはどれですか?

私の場合、ID フィールドは一意ではありません

4

4 に答える 4

1

EmpIdには一意の値がないため、ArrayListを使用できます。:-

class Employee {
    int id;
    String Name;
    double salary;
}

次に、を持って、それにインスタンスをArrayList<Employee>追加します。POJO

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

empList.add(new Employee(1001, "rohit", 542345));
empList.add(new Employee(1001, "abc", 542345));
empList.add(new Employee(1001, "asf", 542345));

ただし、Employeesを取得するときは、複数の値を比較する必要があります。したがって、..のequals()メソッドをオーバーライドしてから、。を使用しEmployee POJOて2つを比較できます。Employeese1.equals(e2)

于 2012-10-09T16:35:43.170 に答える
1

Map<Integer, EmployeePojo>フィールドをキー、EmpIdPOJO を値として使用します。キー値が一意であると仮定します。そうであれば、マップを使用すると、優れたアクセス時間が得られます。

POJO が呼び出されると仮定した、より完全なスニペットEmployee:

Map<Integer, Employee> employeeLookup = new HashMap<Integer, Employee>();
employeeLookup.put(employee1.getEmpId(), employee1);
employeeLookup.put(employee2.getEmpId(), employee2);

IDで従業員を取得する

Employee employee = employeeLookup.get(someId);
于 2012-10-09T16:20:24.013 に答える
0

これは、HashMap にとって理想的な状況のように見えます。従業員の名前または ID をキーとして使用し、POJO を値として使用します。

于 2012-10-09T16:22:04.827 に答える
0

新しいクラスを作成すると、データを含む 3 つのフィールド変数が含まれます。次に、作成した新しいクラスの ArrayList を作成できます。クラスでは、ゲッターとセッターを作成してデータを維持できます

于 2012-10-09T16:23:07.380 に答える