Искал решение для способа дедубликации записей в листе с opportunity.
Условия такие: Есть лист с Opportunity, у каждой из них есть тип сервиса например
Car, Ship, Plain.
И существует Close Date на каждом. Так вот если у них совпадают типы сервиса, то остаться должен тот у кого дата ближе к текущей.
Получилось написать такого вот монстра.
for(Integer i = 0; i < opportunities.size(); i++) {
Opportunity oppI = opportunities.get(i);
for(Integer j = 0; j < opportunities.size(); j++) {
Opportunity oppJ = opportunities.get(j);
if(oppI.Service__c.equals(oppJ.Service__c) && i != j) {
if(oppI.CloseDate > oppJ.CloseDate) {
opportunities.remove(j);
}
if(oppI.CloseDate < oppJ.CloseDate) {
opportunities.remove(i);
}
}
}
}
Какие есть идеи для наиболее єффективного способа дедублицирования?