我有一个有效的问题陈述,但我仍然想知道更有效、更快、更重要的是正确设计来处理下面提到的场景。
我有一个 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.
有没有更有效的方法在第二个 for 循环中进行处理?