List<ProProcessProduct> products这个list,根据将对象brandId,textureId,specificationId,placesteelId这四个属性相同的放到一起,分割成多个list
时间: 2024-09-13 14:16:06 浏览: 43
如果你想要根据`brandId`, `textureId`, `specificationId`, 和 `placesteelId`这四个属性将`List<ProProcessProduct>`的元素分组到多个独立的列表中,你可以使用Java 8的`Collectors.groupingBy`方法结合`Collectors.toMap`或者`Collectors.partitioningBy`。这里提供一个基本的示例:
```java
Map<MultiKey, List<ProProcessProduct>> groupedProducts = products.stream()
.collect(Collectors.groupingBy(
product -> MultiKey.of(product.brandId, product.textureId, product.specificationId, product.placesteelId),
Collectors.toList()));
// 或者使用partitioningBy:
Map<Boolean, List<ProProcessProduct>> partitionedProducts = products.stream()
.collect(Collectors.partitioningBy(
product -> product.brandId == expectedBrandId && product.textureId == expectedTextureId &&
product.specificationId == expectedSpecificationId && product.placesteelId == expectedPlacesteelId,
Collectors.toList()));
```
这里`MultiKey`用于组合四个键作为分组依据。如果使用`partitioningBy`,你需要提前定义`expectedBrandId`, `expectedTextureId`, 等预期值。
每个分组后的`Map`键对应一组具有相同属性的`ProProcessProduct`对象,键的值是包含这些产品的列表。
阅读全文