###前提・実現したいこと
定周期でデータクラスを持った配列同士を比較したかったのですが、
前のデータと後のデータで追加されたのか、削除されたのか、それとも更新されたのかを判定する方法がわかりません
ちなみに追加・削除されたか、更新されたのか、の境目はキーとなる値が一致するかどうかです
ソースコードのほうもできれば貼りたいのですが、たぶん業務上問題があるんじゃないかなと思ったので、わかりにくいことと思いますが、文面のみでの説明とさせてください
ちなDBのデータを扱ってること前提です
データ保持クラス(){ string aa; //主キー string bb; string cc; (ゲッター・セッター略) } (別クラス内) 状態監視メソッド(){ DBアクセス用メソッドのインスタンス生成 boolean flag; while(true){ List org_list=全selectデータ 1秒後 List new_list=全selectデータ for(new_listのサイズ分){ flag=false; new_data=new_list.get(i) for(org_listのサイズ分){ org_data=org_list.get(i) if(new_dataとorg_dataのaa一致){ flag=true; if(new_dataとorg_dataの各メンバのどれか一つでも一致しない){ 更新時の処理 } } } if(!flag){ 追加時の処理 } } } }
###試したこと
二重ループで前後の配列をそれぞれ回して、その中でキーが一致するかを判定したのち、前のデータと後のデータが一致したら更新時の処理を行いました
その前にキー値が一致することがわかった時点でフラグをオンにして、1個目のforループの最後にフラグがオフだった場合に追加時の処理を行いました
ただこの方法だと削除だった場合の判定がどうしても行えず。。
回答2件
あなたの回答
tips
プレビュー