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());
    }
}
相关推荐
学渣6765610 分钟前
conda和bash主环境的清理
开发语言·conda·bash
Dxy123931021612 分钟前
python合并一个word段落中的run
python·word
碎梦归途17 分钟前
23种设计模式-行为型模式之命令模式(Java版本)
java·开发语言·jvm·设计模式·命令模式·行为型模式
夜晚中的人海20 分钟前
【C语言】初阶算法相关习题(二)
c语言·开发语言·算法
程高兴24 分钟前
高压直流输电MATLAB/simulink仿真模型+说明文档
开发语言·网络·matlab
一直很很安静25 分钟前
java借助NIO、链表、跳表模拟实现redis
java·链表·nio
炯哈哈30 分钟前
【上位机——MFC】文档
开发语言·c++·mfc·上位机
高效匠人30 分钟前
Python中的Walrus运算符分析
java·服务器·python
m0_5642641835 分钟前
springboot项目之websocket的坑:spring整合websocket后进行单元测试后报错的解决方案
java·经验分享·spring boot·websocket·spring·单元测试·报错
一个天蝎座 白勺 程序猿38 分钟前
Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解
数据库·python·mysql