Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

重複チェック

javaの重複チェックで
dtoの中にある複数の項目で重複チェックしたいのです。
下の例でいうと、DTOが含まれているリスト内に
項目aと項目cが同じ値があったら除外したい。
テーブルのキー項目が重複している場合の考慮です。

public class Dto{
 private String a = new String();
 private String b = new String();
 private String c = new Integer();
 private String d = new String();

}

List<Dto> dtoList = new List<Dto>();
for(Dto dto:dtoList){
 //dtoの中にある複数の項目が重複していたら除外
}

Listの中の項目が1つなら
containsとかで判断できるんですが
複数ある場合、どのように判断するのが宜しいでしょうか?

4

回答

12832

閲覧

4件の回答

評価

0

私ならcontainsで調べるわ。
containsでtrueになる条件を
Dtoに実装してあげればいいのよ。

評価

0

a.equals(c)を削除したいのか、a.equals(X) || c.equals(X)を削除したいのか?
日本語って難しいねえ。

評価

0

ん?a.equals(otherDTO.a)&&c.equals(otherDTO.c)か?

これなら、そもそもテーブルに複合フィールドの一意制約をつければ良さそうだが…。

評価

0

aとcが一致していたらequals()でtrue返すようにしておけば、Setなら自動的に跳ねるんじゃない?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。