情報を保持するクラスがありArrayList
、このリストにオブジェクトを追加したいと考えています。リストに追加する前に、そのリストにすでに番号が含まれているかどうかを確認したいと思います。
通常、それが単なる文字列のリストである場合、私はこのようなことをするだけです
if(!list.contains("this string")){
list.add("this string");
}
ただし、これはクラスであるため、インデックスごとに複数の変数があります。
クラスの世界の例は次のとおりです。
private class From{
private long threadID;
private long date;
private String address;
private String body;
private int type;
private long id;
@Override
public boolean equals(Object obj){
if(obj != null){
if(getClass() != obj.getClass()){
return false;
}else{
final From from = (From)obj;
if((this.address != null) ? (from.address != null) : !this.address.equals(from.address)){
return false;
}
}
}else{
return false;
}
return true;
}
}
同じ番号のエントリが既に存在するかどうかを確認したいので、各インデックスを手動でループして確認する必要がありますか?
編集:
私はそれをどのように呼んでいますか
HashSet<From> addresses = new HashSet<From>();
From f = new From();
f.setAddress(messages.getString(3));
f.setBody(messages.getString(0));
f.setDate(messages.getLong(2));
f.setThreadId(messages.getLong(1));
f.setType(1);
if(!addresses.contains(f.address)){
addresses.add(f);
}