Я думаю, вы могли бы оптимизировать это с помощью java -8.
Если я не ошибаюсь, ваш код не устанавливает для фаворитов ноль, если их больше нельзя найти.
Это должно сделать то же самое, что и ваш исходный код, но более java -8 образом:
void applyFavoriteChangesToMerchantStore () {// взять список избранных торговцев List favourMerchantsList = FavoriteMerchantStore.getInstance (). GetFavoriteMerchantsList () );
// if any favorites found, we gotta do something with them
if(favoriteMerchantsList != null && !favoriteMerchantsList.isEmpty()) {
// take list of all merchants
List<Merchant> storeMerchantList = MerchantStore.getInstance().getMerchantList();
// convert those into a map with the ids as keys
Map<String, Merchant> storeMap = storeMerchantList.stream().collect(Collectors.toMap(Merchant::getId, merchant -> merchant));
// set the favorite for each merchant
favoriteMerchantsList.forEach(favoriteMerchant -> {
// if each favorite is guaranteed to be in the list of storeMerchantList, this causes no null result
Merchant storeMerchant = storeMap.get(favoriteMerchant.getId());
//set merchant favorite status
storeMerchant.setFavoriteMerchant(favoriteMerchant.getFavoriteMerchant());
//set offer favorite status
applyOfferChanges(favoriteMerchant.getOffferList(), storeMerchant.getOffferList());
});
}
}
Если вы хотите сбросить (установить на ноль) тех торговцев, которые в настоящее время не имеют фаворитов, ваш код может выглядеть следующим образом:
void applyFavoriteChangesToMerchantStore () {// взять список избранных продавцов Не стесняйтесь отвечать, если это помогло.