Listの重複を確認する方法!Java超初心者の勉強

Listの中に重複がないか確認する方法を書き残します。

Listの重複を確認する方法

List checkList = new ArrayList();
checkList.add("Tanaka");
checkList.add("Kato");
checkList.add("Nakamoto");
checkList.add("Tanaka");

Set set = new HashSet(); //重複確認用

for(String duplicateCheck : checkList) {
    //setに追加してみて、追加できなかった(重複していた)場合
    if(!set.add(duplicateCheck)) {
    System.out.println(duplicateCheck + "が重複しています。");
    }
}

重複箇所を表示する方法

ついでにどことどこが重複したのかを表示する場合の書き方です。3つ以上重複がある場合は重複場所がわかると便利です。

List checkList = new ArrayList();
checkList.add("Tanaka");
checkList.add("Kato");
checkList.add("Nakamoto");
checkList.add("Tanaka");

String errorMsg ="";
List errorMsgList = new ArrayList();

for (int i = 0; i < checkList.size(); i++) {
    String nameA = checkList.get(i);
    for (int j = i + 1; j < checkList.size(); j++) {
        if (!(nameA.equals(""))) {
            String nameB = checkList.get(j);
            if (nameA.equals(nameB)) {
                errorMsg = (i + 1) + "つめと" + (j + 1) + "つめが重複しています。";
                errorMsgList.add(errorMsg);
            }
        }
    }
}
for(String s : errorMsgList) {
    System.out.println(s);
}

Java

Posted by Nakamoto