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());
    }
}
相关推荐
ZhengEnCi7 小时前
M3-markconv库找不到wkhtmltopdf问题
python
2301_764441339 小时前
LISA时空跃迁分析,地理时空分析
数据结构·python·算法
014-code10 小时前
订单超时取消与库存回滚的完整实现(延迟任务 + 状态机)
java·开发语言
lly20240610 小时前
组合模式(Composite Pattern)
开发语言
游乐码10 小时前
c#泛型约束
开发语言·c#
Dontla11 小时前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
chushiyunen11 小时前
python rest请求、requests
开发语言·python
cTz6FE7gA11 小时前
Python异步编程:从协程到Asyncio的底层揭秘
python
铁东博客11 小时前
Go实现周易大衍筮法三变取爻
开发语言·后端·golang
baidu_huihui11 小时前
在 CentOS 9 上安装 pip(Python 的包管理工具)
开发语言·python·pip