package com.ruoyi.common.utils; import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollUtil; import lombok.AccessLevel; import lombok.NoArgsConstructor; import java.util.*; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; /** * stream 流工具类 * * @author Lion Li */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class StreamUtils extends CollStreamUtil { public static List filter(Collection collection, Predicate function) { if (CollUtil.isEmpty(collection)) { return Collections.emptyList(); } return collection.stream().filter(function).collect(Collectors.toList()); } public static String join(Collection collection, Function function) { return join(collection, function, ","); } public static String join(Collection collection, Function function, CharSequence delimiter) { if (CollUtil.isEmpty(collection)) { return StringUtils.EMPTY; } return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter)); } public static List sorted(Collection collection, Comparator comparing) { return collection.stream().sorted(comparing).collect(Collectors.toList()); } }