已知对象ListSplitProductionOrderItem splitIsNotB MapString BigDecimal releaseTotal根据releaseTotal过滤掉releaseTotal的key值与splitIsNotB中的字段productId相同的数据并生成新的对象ListOdsMaterialDocumentItem resultList2请使用效率最快的方式
可以使用Java 8的Stream API来实现该过滤操作,代码如下:
List<OdsMaterialDocumentItem> resultList2 = releaseTotal.entrySet().stream()
.filter(entry -> splitIsNotB.stream().noneMatch(item -> item.getProductId().equals(entry.getKey())))
.map(entry -> new OdsMaterialDocumentItem(entry.getKey(), entry.getValue()))
.collect(Collectors.toList());
上述代码使用了Stream的filter方法来过滤掉与splitIsNotB中的productId相同的数据,并使用map方法将过滤后的数据转换为OdsMaterialDocumentItem对象,最后使用collect方法将转换后的对象收集到一个新的List中。
这种方式的效率较高,因为Stream API内部使用了并行处理,可以充分利用多核处理器的优势提高处理速度
原文地址: http://www.cveoy.top/t/topic/iTiW 著作权归作者所有。请勿转载和采集!