У меня есть сценарий, и я не уверен, что может быть эффективным способом фильтрации hashmap и обновления той же карты. Вот мой hashmap;Map<Double, List<Product>> mappedProducts = new HashMap<>();
Я выложил ключи и значения в mappedProducts некоторым способом. Теперь в другом методе я пытаюсь отфильтровать список продуктов, основываясь на том, больше ли значение моего ключа, чем вес свойства продукта. Вот как я это сделал, хотя он прекрасно работает, но я не уверен, является ли это наиболее эффективным и действенным способом сделать это. Взгляните на следующий код:
this.mappedProducts.entrySet().stream().filter(packList ->{
mappedProducts.put(packList.getKey(), packList.getValue().stream().filter(pack ->{
if(pack.getWeight() <= packList.getKey())
return true;
return false;
}).collect(Collectors.toList()));
return true;
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println("Filtered Products"+mappedProducts);
Есть ли другой лучший способ сделать это?