diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java index 52f5a8c..ab392ee 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java @@ -12,7 +12,10 @@ import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.entities.dto.PhoneFidMap; import java.time.LocalDate; -import java.util.*; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Slf4j @Service @@ -66,17 +69,20 @@ public class PhoneService2 { new FidsData(rs.getInt("fid"), rs.getString("number"), rs.getObject("file_since_dt", LocalDate.class)) ); + Map phoneToFidsMap = new HashMap<>(); + for (FidsData fidsData : phonesByFid) { + if (!phoneToFidsMap.containsKey(fidsData.getPhone())) { + phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid()); + } + } + log.debug("Start merging fids"); for (PhoneFidMap phoneFid : subjects) { - Iterator iterator = phonesByFid.iterator(); - while (iterator.hasNext()) { - FidsData fidsData = iterator.next(); - if (fidsData.getPhone().equals(9 + phoneFid.getPhone())) { - //fixme доступ по ссылке, страшно, придумать что-то еще - phoneFidMap.put(fidsData.getFid(), phoneFid); - iterator.remove(); - break; - } + String phone = "9" + phoneFid.getPhone(); + Integer fid = phoneToFidsMap.get(phone); + if (fid != null) { + phoneFidMap.put(fid, phoneFid); + phoneToFidsMap.remove(phone); } } log.debug("End merging fids");