Цитата:
Сообщение от
belugin
корреспондируются проводки с совпадающими арактеристиками, потом всё остальное
Судя по коду
X++:
if ((_equals ? bondTransObjectDebet.equals(bondTransObjectCredit) : true))
проводки с совпадающими арактеристиками, обрабатываются дважды.
В любом случае непонятно для чего нужно два прохода? Важна последовательность обработки? Сомнительно. И потом, даже если и важна, всё равно можно обойтись без дублирования проверки на equals.
И уж совершенно точно незачем делать проверку наличия bondTransObjectDebet.remainAmountMST() во вложенном цикле. Правильно будет так:
X++:
...
while (enumeratorDebet.moveNext())
{
bondTransObjectDebet = this.findBondTransObject(enumeratorDebet.currentValue());
// -->>
if (bondTransObjectDebet.remainAmountMST() == 0)
{
continue;
}
// <<--
enumeratorCredit.reset();
while (enumeratorCredit.moveNext())
{
// if (bondTransObjectDebet.remainAmountMST() == 0)
// {
// break;
// }
...
Пусть не большая, но всё таки оптимизация