Извлеките число из списка и поместите его в другой элемент списка, если он соответствует определенным условиям с помощью java

#java #list #collections

Вопрос:

У меня есть постановка проблемы, это своего рода бизнес-логика, и я хочу узнать ваше мнение по этому поводу, как бы вы подошли к такому сценарию, просто хотел знать наилучший возможный сценарий, вот и все.

Допустим, у вас есть список элементов, и в этом списке элементов есть класс, который в основном говорит, что это элемент оборудования или элемент обслуживания. У меня также есть другие материалы, но я в основном сосредоточен на этих двух.

Я веду один класс. называется материалом и имеет такие атрибуты, как isHardwareItem , isserviceItem , entryNum , id , Product .

isHardwareItem -> верно для элемента оборудования и ложно для всех остальных элементов. isserviceItem -> верно для сервисного товара и ложно для всех остальных товаров. entryNum -> генерирует уникальный номер для каждого товара, если товар добавлен в корзину > id -> целое число, которое будет сгенерировано только в том случае, если клиент добавит сервисный товар вместе с аппаратным товаром, и оно будет одинаковым для каждого оборудования элемента обслуживания, чтобы я мог связать. например

Hardwareitem — идентификатор = 0 , номер записи=1

Элемент обслуживания — идентификатор = 0, номер записи = 2

Product -> другой класс, который содержит название продукта, описание и т. Д.

Проблема

если клиент добавляет элемент обслуживания вместе с элементом оборудования, мне нужно прикрепить entryNum элемент оборудования к элементу обслуживания вместе с атрибутами ServiceItem.

Мой Подход

сначала проверяет идентификатор, если сгенерированный идентификатор означает, что клиент добавил как оборудование, так и сервисный товар. получите entryNum аппаратное обеспечение и сохраните его на карте.

ключом будет идентификатор, а значением будет номер входа элемента оборудования.

затем выполняется итерация добавленных записей, и будет создан запрос на отправку материалов во внешний api. во время этого, если я столкнусь с сервисным материалом с тем же идентификатором, я прикреплю его к номеру ввода аппаратного материала, сделаю запрос и отправлю его в api.

У меня есть вышеупомянутое решение, но оно дорогостоящее, потому что буквально повторение происходит дважды. у кого-нибудь из вас есть лучшее решение, чем мое ? Пожалуйста, отбросьте свои мысли.

Хорошего вам дня . 🙂

Комментарии:

1. Не решая проблему, но для удобства обслуживания вы могли бы сделать поля isHardwareItem isServiceItem и т. Д. Методом и просто сохранить int type поле. Скажем 0 , соответствует элементу аппаратного обеспечения и 1 соответствует элементу обслуживания. Тогда isHardwareItem() бы просто вернулся type==0 и isServiceItem() просто вернулся type==1 . При добавлении дополнительных типов вам не нужно загромождать свой класс всеми этими полями, и, самое главное, вам не нужно устанавливать каждое из этих полей.