配列リストを検索する簡単な方法はありますか? removeAll() や add() のようなコレクションには多くのことがありますが、リストを検索するためにこのようなものはありますか
2 に答える
2
UserArchive
リストをループし、各ユーザー ID を渡されたものと比較するメソッドをクラスに追加します。
public User findById(int id) {
for (User u : list) {
if (u.getCustomerID() == id) {
return u;
}
}
return null; // or empty User
}
于 2013-04-05T12:47:07.047 に答える
0
ループ内で if を実行し、ループ内の User の各インスタンスの ID を調べるオプションがあります。
for (User user : list) {
if (user.getCustomerID == [The id to lookup]) {
// Whatever you want to do
}
}
または、User クラスの equals() メソッドをオーバーライドし、CustomerID の代わりに User の別のインスタンスを比較する場合、List.contains 関数のロックを解除することもできます。
equals の関数ヘッダーには次のように書かれています。
このリストに指定された要素が含まれている場合、true を返します。より正式には、このリストに (o==null ? e==null : o.equals(e)) となる要素 e が少なくとも 1 つ含まれている場合にのみ true を返します。
これが、オブジェクトの equals をオーバーライドする必要がある理由です。多くの関数はオブジェクトに equals() を使用しており、結果が良好であることを気にする場合は、関数をオーバーライドする必要があります。
// Or whatever instance of User you want to compare
User custToLookup = new User(idToLookup, "", "", "");
// You could stop here if you only want to know if the instance exist in the list
if (list.contains(custToLookup)){
for (User user : list) {
if (user.equals(custToLookup) {
// Whatever you want to do
}
}
}
*編集:いくつかの単語を忘れました
于 2013-04-05T12:59:00.427 に答える