java集合工具类

java集合工具类

java 复制代码
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;

public class CollUtil {
    /**
     * 集合是否为空
     *
     * @param collection 集合
     * @return 是否为空
     */
    public static boolean isEmpty(Collection<?> collection) {
        return collection == null || collection.isEmpty();
    }

    /**
     * 集合是否为非空
     *
     * @param collection 集合
     * @return 是否为非空
     */
    public static boolean isNotEmpty(Collection<?> collection) {
        return false == isEmpty(collection);
    }

    /**
     * 集合是否为非空 --> 执行
     * @param collection
     * @param consumer
     * @param <T>
     */
    public static <T> void isNotEmpty(Collection<T> collection, Consumer<Collection<T>> consumer){
        if(isNotEmpty(collection)){
            consumer.accept(collection);
        }
    }

    /**
     * 集合是否为非空 --> 执行
     * @param collection
     * @param consumer
     * @param <T>
     */
    public static <T> void isNotEmptyList(List<T> collection, Consumer<List<T>> consumer){
        if(isNotEmpty(collection)){
            consumer.accept(collection);
        }
    }

    /**
     * 集合是否为空 --> 执行
     * @param collection
     * @param consumer
     * @param <T>
     */
    public static <T> void isEmpty(Collection<T> collection, Consumer<Collection<T>> consumer){
        if(isEmpty(collection)){
            consumer.accept(collection);
        }
    }

    /**
     * 集合是否为空 --> 执行
     * @param collection
     * @param consumer
     * @param <T>
     */
    public static <T> void isEmptyList(List<T> collection, Consumer<List<T>> consumer){
        if(isEmpty(collection)){
            consumer.accept(collection);
        }
    }

    /**
     * 去重 返回新集合
     * @param collection
     * @return
     * @param <T>
     */
    public static <T> List<T> distinct(List<T> collection){
       return collection.stream().distinct().collect(Collectors.toList());
    }
}
相关推荐
4***14903 分钟前
C++在系统中的编译优化
开发语言·c++
田姐姐tmner6 分钟前
Python切片
开发语言·python
oioihoii9 分钟前
C++程序执行起点不是main:颠覆你认知的真相
开发语言·c++
t***316521 分钟前
爬虫学习案例3
爬虫·python·学习
lcu11121 分钟前
Java 学习40:继承
java
p***q7828 分钟前
【保姆级教程】apache-tomcat的安装配置教程
java·tomcat·apache
周杰伦fans37 分钟前
C# 中的**享元工厂**模式
开发语言·数据库·c#
2501_9411486143 分钟前
C++实时数据处理实战:多线程与异步IO结合高性能代码解析
java·后端·struts
u***u68544 分钟前
C++在系统中的异常处理
java·开发语言·c++
空空kkk1 小时前
SpringMVC——拦截器
java·数据库·spring·拦截器