機能している問題ステートメントがありますが、以下のシナリオを処理するために、より効率的で、より速く、さらに重要なことに正しく設計されていることを知りたいです。
私はPOJOクラスを持っています
class A {
String s;
Double d;
}
リスト、基本的にはオブジェクト A のリストをリストに入力しようとしています。今問題の実装。オブジェクト A をリストに追加するときに、 String を持つオブジェクトが既に存在するかどうかを確認する必要があります。はいの場合、古いオブジェクトを古い d1 + 新しい d1 で更新し、新しいオブジェクトをリストに追加しない場合、新しいオブジェクトをリストに追加します。私の現在の実装は以下のようなものです。
double dd = 0.0;
List<A> aList = new List<A>();
List<A> aListToRemove = new List<A>();
A newA = null;
for(int i=0;i<=100;i++ ){
newA = method call which returns newA;
for(A oldA: aList ){
if(oldA.getS().equals(newA.getS())){
dd = oldA.getD() + newA.getD();
newA.setD(dd);
aListToRemove.add(oldA);
}
aList.add(newA);
aList.removeAll(aListToRemove);
}
}
//at the end, i would like to see aList with no duplicates, but with updated d value.
2 番目の for ループ内で処理を行うためのより効率的な方法はありますか?