Интересно, возможно ли сделать этот метод лучше, поэтому у меня есть этот метод:
public int getLabelIdByLabelName(String labelName) throws ApiException {
List<LabelInfo> labelsList = getAllLabels();
return labelsList.stream()
.filter(label -> label.getName().equals(labelName))
.findFirst()
.map(LabelInfo::getId)
.orElse(0);
}
И этот метод использует его:
public void enableSpecificDevices(RuleIdentifier identifier, String[] labelNames) throws ApiException {
List<Integer> labelsIdList = getLabelListById(identifier);
for (String labelName : labelNames) {
labelsIdList.remove(Integer.valueOf(deviceAPI.getLabelIdByLabelName(labelName)));
}
DisableRequest disableRequest = getDisableRequestBody(deviceIdList, labelsIdList);
sendDisableEnableRequest(disableRequest, identifier);
}
Этот метод возвращает int
значение: deviceAPI.getLabelIdByLabelName(labelName)
.
Как вы можете видеть в for l oop, я звоню getLabelIdByLabelName
каждый раз, а затем выполняю логи c, которые мне нужны, ее ресурс потребляет для нет причин, я задаюсь вопросом, как вернуть список целых чисел из этого списка, который будет выглядеть примерно так: получить List один раз зацикливаясь на массиве имен, который будет равен имени, и добавить его в новый список целых чисел и вернуть его.