|
@@ -6,10 +6,10 @@ import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
-import java.util.Collection;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.function.Predicate;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author shiqian
|
|
@@ -176,4 +176,46 @@ public class ObjectUtils {
|
|
|
public static boolean ltZero(Long aLong) {
|
|
|
return null != aLong && aLong < 0;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 功能描述: 根据规则过滤
|
|
|
+ *
|
|
|
+ * @param input 原数据
|
|
|
+ * @param predicate FunctionalInterface
|
|
|
+ * @return java.util.List<T>
|
|
|
+ */
|
|
|
+ public static <T> List<T> filter(List<T> input, Predicate<T> predicate) {
|
|
|
+ return requireNonNull(input, "list is null")
|
|
|
+ .stream().filter(predicate).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 功能描述: 根据规则获取
|
|
|
+ *
|
|
|
+ * @param input 原数据
|
|
|
+ * @param function FunctionalInterface
|
|
|
+ * @return java.util.List<T>
|
|
|
+ */
|
|
|
+ public static <T, R> List<R> map(List<T> input, Function<T, R> function) {
|
|
|
+ return requireNonNull(input, "list is null")
|
|
|
+ .stream().map(function).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 功能描述: 根据规则获取单个
|
|
|
+ *
|
|
|
+ * @param input 原数据
|
|
|
+ * @param function FunctionalInterface
|
|
|
+ * @return java.util.List<T>
|
|
|
+ */
|
|
|
+ public static <T, R> R mapFirst(List<T> input, Function<T, R> function) {
|
|
|
+ requireNonNull(input, "list is null");
|
|
|
+ List<R> rList = input.stream().map(function).collect(Collectors.toList());
|
|
|
+ requireNonNull(rList, "rList is null");
|
|
|
+ Optional<R> optionalR = rList.stream().findFirst();
|
|
|
+ return optionalR.orElse(null);
|
|
|
+ }
|
|
|
+
|
|
|
}
|