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());
    }
}
相关推荐
滴_咕噜咕噜几秒前
C#基础总结:常用的数据结构
开发语言·数据结构·c#
martian665几秒前
【Java高级篇】——第16篇:高性能Java应用优化与调优
java·开发语言·jvm
m0_748250033 分钟前
springboot使用logback自定义日志
java·spring boot·logback
-优势在我6 分钟前
Android TabLayout 实现随意控制item之间的间距
android·java·ui
m0_7482323918 分钟前
基于OpenCV和Python的人脸识别系统_django
python·opencv·django
Lojarro21 分钟前
JavaEE基础之- Servlet相关
java·servlet·java-ee
KingDol_MIni43 分钟前
Spring Boot 集成 T-io 实现客户端服务器通信
java·服务器·spring boot
dme.44 分钟前
Python爬虫selenium验证-中文识别点选+图片验证码案例
爬虫·python
东方-教育技术博主1 小时前
wps中zotero插件消失,解决每次都需要重新开问题
python
许苑向上1 小时前
Java八股文(下)
java·开发语言