質問: new HashSet(); //社員番号列(A列) for(String user1 : result1) { //setに追加してみて、追加できなかった(重複していた)場合 if(!set1.add(user1)) { System.out.println("【社員番号】に重複データがあります。値:" + user1); flg2++; } } //社員名列(B列) for(String user2 : result2) { //setに追加してみて、追加できなかった(重複していた)場合 if(!set2.add(user2)) { System.out.println("【社員名】に重複データがあります。値:" + user2); flg2++; } } //内線番号列(C列) for(String user3 : result3) { //setに追加してみて、追加できなかった(重複していた)場合 if(!set3.add(user3)) { System.out.println("【番号】に重複データがあります。値:" + user3); flg2++; } } //電話番号列(D列) for(String user4 : result4) { //setに追加してみて、追加できなかった(重複していた)場合 if(!set4.add(user4)) { System.out.println("【電話番号】に重複データがあります。値:" + user4); flg2++; } } } } ``` 宜しくお願いします。
回答: ファイルの読み取り処理は一般的に時間がかかります。CSVの容量にもよりますが、一度全てを読み取った方が良いと思いますよ。 ・先にCSVを読み取る処理を行い、CSVからStringの配列に変換する。 ・各チェッククラスはStringの配列を受け取り、チェックを行う。 また、下記のようなことも考えられます。 ・チェッククラスはもう少し具体的な名前にすべきかなとおもいます。 ・チェックインターフェースを作成し、チェックメソッドを宣言する。各チェッククラスはチェックインターフェースを実装する。 ・チェックメソッドの戻り値はboolean型にし、flgを廃止する。 ・boolean型は==で比較しない。 チェックをするだけで具体的にどこが悪いかはわからないので、それがわかるようにするともっと実践的になると思います。