Merge remote-tracking branch 'origin/v6-dev' into v6-dev

This commit is contained in:
VampireAchao 2022-11-27 22:36:29 +08:00
commit 683a26bed9

View File

@ -122,14 +122,13 @@ public class BeanTree<T, R extends Comparable<R>> {
public List<T> toTree(final List<T> list) { public List<T> toTree(final List<T> list) {
if (Objects.isNull(parentPredicate)) { if (Objects.isNull(parentPredicate)) {
final Map<R, List<T>> pIdValuesMap = EasyStream.of(list) final Map<R, List<T>> pIdValuesMap = EasyStream.of(list)
.peek(e -> Objects.requireNonNull(idGetter.apply(e), .peek(e -> Objects.requireNonNull(idGetter.apply(e), "The id of tree node must not be null")
() -> StrUtil.format("primary key {} must not null", LambdaUtil.getFieldName(idGetter))
)).group(pidGetter); )).group(pidGetter);
final List<T> parents = pIdValuesMap.getOrDefault(pidValue, new ArrayList<>()); final List<T> parents = pIdValuesMap.getOrDefault(pidValue, new ArrayList<>());
findChildren(list, pIdValuesMap); findChildren(list, pIdValuesMap);
return parents; return parents;
} }
final List<T> parents = new ArrayList<>(list.size()); final List<T> parents = new ArrayList<>();
final Map<R, List<T>> pIdValuesMap = EasyStream.of(list).peek(e -> { final Map<R, List<T>> pIdValuesMap = EasyStream.of(list).peek(e -> {
if (parentPredicate.test(e)) { if (parentPredicate.test(e)) {
parents.add(e); parents.add(e);
@ -142,6 +141,7 @@ public class BeanTree<T, R extends Comparable<R>> {
/** /**
* 将树扁平化为集合相当于将树里的所有节点都放到一个集合里 * 将树扁平化为集合相当于将树里的所有节点都放到一个集合里
* <p>本方法会主动将节点的子集合字段置为null</p>
* *
* @param tree * @param tree
* @return 集合 * @return 集合