重複チェック
まずは、簡単なオブジェクトを定義
/** * ユーザクラス */ class User { /** ID */ private String id; /** 名前 */ private String name; /** メールアドレス */ private String email; (Getter, Setterなどが定義されている) }
で、単純にemailが重複していないかをチェックします。
class Test { public static void main(String[] args) { // メールアドレスset Set<String> set = new HashSet<String>(); List<User> userList = (いろいろなUserクラスが入っているとする。) for (User user : userList) { String bufEmail = user.getEmail(); if (set.contains(bufEmail)) { // 存在する場合 System.out.println(bufEmail + "が重複しています。"); } else { // 存在しない場合、setに追加 set.add(bufEmail); } } } }
次、どのidと重複しているかを表示する場合。
class Test2 { public static void main(String[] args) { // キー:email、値:idとなるmap Map<String, String> map = new HashMap<String, String>(); List<User> userList = (いろいろなUserクラスが入っているとする。) for (User user : userList) { String bufEmail = user.getEmail(); String tgtId = map.get(bufEmail); if (tgtId != null) { // 存在した場合 System.out.println(bufEmail + "が" + tgtId + "と重複しています。"); } else { // 存在しなかった場合、mapに追加 map.put(bufEmail, user.getId()); } } } }
以上、変数名などテキトー。
また、Eclipseがやる気を起こしてくれないため、手書き+未コンパイル。
動作確認なし。
間違ってたら、そのうち直そうと思います。