Ребят, всем привет!
Есть на входе массив и есть родительский массив с вложенным массивом. Нужно сравнить массив на входе и вложенный массив, если они по заданному условия совпадают, то удалить сам объект из родительского массива. Вот код, но как то он криво работает.
public void sort(List<ProductComponentsResponse> filterData) {
productsList = new ArrayList<>(mSortModels);
for (ProductComponentsResponse component : filterData) {
String componentId = component.getId();
int componentState = component.getState();
Iterator<ProductResponse> iterator = productsList.iterator();
while (iterator.hasNext()) {
ProductResponse next = iterator.next();
for (ProductComponentsResponse productComponentsResponse : next.getProductComponents()) {
boolean containComponent = productComponentsResponse.getId().contains(componentId);
if (componentState == ProductComponentsResponse.FilterState.NONE) {
continue;
}
if (componentState == ProductComponentsResponse.FilterState.SELECTED) {
if (!containComponent) {
Log.d("component", String.valueOf(productComponentsResponse.getId()));
Log.d("componentState", String.valueOf(componentState));
iterator.remove();
break;
}
} else if (componentState == ProductComponentsResponse.FilterState.UNSELECTED) {
if (containComponent) {
Log.d("_component", String.valueOf(productComponentsResponse.getId()));
Log.d("_componentState", String.valueOf(componentState));
iterator.remove();
break;
}
}
}
}
}
notifyDataSetChanged();
}