MergeUtil -- 合并两个list中的属性
Closed this issue · 0 comments
wave-gbt commented
/**
* 把 sourceList 的一些属性合并到 targetList 中
* 基于 testFunction 的条件,合入逻辑实现为 biConsumer
* @param targetList
* @param sourceList
* @param testFunction
* @param biConsumer
* @param <T>
* @param <S>
*/
public static <T, S> void merge(List<T> targetList, List<S> sourceList,
BiFunction<? super T, ? super S,Boolean> testFunction,
BiConsumer<? super T, ? super S> biConsumer) {
targetList.forEach((t)->{
Optional<S> optional = sourceList.stream().filter(s -> testFunction.apply(t,s)).findFirst();
if (optional.isPresent()) {
biConsumer.accept(t,optional.get());
}
});
}