Java言語で、2つのリスト内の配列を比較して、一致するものとしないものを判定したいです。
良い方法があれば教えてください。
【やりたいこと】
List<String[]> list1 = new ArrayList<String[]>;
List<String[]> list2 = new ArrayList<String[]>;
list1内の中身
1行目 ヘッダー(配列)
2行目以降 ID,値(配列)
list2内の中身
1行目 ヘッダー(配列)
2行目以降 値(配列)
list1内の配列とlist2内の配列が一致すれば、その一致した値のIDを取得する
一致したものは更新用リストへ、しなかったものは新規追加用リストへ
下記のソースだと、list2の1行目(ヘッダー部分)を毎回確認して、新規リストに追加してしまう。
【現状のソース】
//台帳情報の1行ずつ照合する
for(String[] master : list1){
//対象リストを1行ずつ確認する
for(String[] input: list2){
//取込用配列から返却用(ID追加版)配列を取得 String[] result = new String[input.length+1]; System.arraycopy(input, 0,result , 1, input.length); //1行目の場合 if(i == 0 && j==0 ){ result[0] = "ID"; resultList.add(result); //更新用ファイル情報リストに追加 UpdList.add(result); //新規追加用ファイル情報リストに追加 NewList.add(result); j++; break; } //台帳内の案件番号とRedmine取込対象リストの案件番号が等しいものがあった場合 if(master[3].equals(result[1])){ //台帳のIDを対象リストのIDを代入する result[0] = master[0]; resultList.add(result); //更新用ファイル情報リストに追加 UpdList.add(result); }else{ //対象リストのIDに""(空文字)を代入する result[0] = ""; resultList.add(result); //新規追加用ファイル情報リストに追加 NewList.add(result); } j++; } i++; } //更新用ファイル情報リストをセットする setUpdList(UpdList); //新規追加用ファイル情報リストをセットする setNewList(NewList);
回答3件
あなたの回答
tips
プレビュー