どのようにオブジェクトの配列リスト内のオブジェクトの一つの要素を見つけるには?

UUUにそれを行った後:

私は、Employeeクラスのオブジェクトの配列リストを持っています。すべての従業員は、ID、FNAME、LNAMEなどI従業員IDの従業員が配置されているインデックスを見つけるためにどのように例1234521953.ためである要素のインデックスを取得する必要がありますか?すべてのIDは、私がIDで彼を見つけるためにツルーイングしています理由ですそのユニークです。

public class Employee extends Person {
    private String employerName;
    private LocalDate employmentDate;
    private LocalDate releaseDate;
    private BigDecimal salary;
    private String jobtitle;    
}

私のクラスの人があります:

public class Person {
    public long getId() {
        return id;
    }

    private long id;
    private String fname;
    private String lname;
    private String addressLine;
    private LocalDate birthDate;
}

私はにのためにそれらを追加しています:

List<Employee> employeesAL = new ArrayList<>();
azro:

あなたが実装している場合.equalsにおけるメソッドEmployeeクラスをあなただけにそれを渡すこと.indexOf()

List<Employee> l = new ArrayList<>();
Employee e = new Employee("ID123");
int idx = l.indexOf(e);

IDユニークです、あなたは内のすべてのフィールドをチェックする必要はありません。.equals()ただ、チェック方法ID

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Employee employee = (Employee) o;
    return id == employee.id;
}

あるいは、同じロジックを使用して、それを自分で実装します indexOf

int idx = -1;
for (int i = 0; i < l.size(); i++) {
    if (e.getId() == l.get(i).getId()) {
        idx = i;
        break;
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=359713&siteId=1