• Hutool集合相关工具类CollUtil常用方法


    两个集合的并集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c],此结果中只保留了三个c
    Params:
    coll1 – 集合1
    coll2 – 集合2
    Type parameters:
    <T> – 集合元素类型
    Returns:
    并集的集合,返回 ArrayList
    
    public static <T> Collection<T> union(Collection<T> coll1, Collection<T> coll2);

    两个集合的交集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c],此结果中只保留了两个c
    Params:
    coll1 – 集合1
    coll2 – 集合2
    Type parameters:
    <T> – 集合元素类型
    Returns:
    交集的集合,返回 ArrayList

    public static <T> Collection<T> intersection(Collection<T> coll1, Collection<T> coll2);

    计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如:
               subtract([1,2,3,4],[2,3,4,5]) -》 [1]
           
    Params:
    coll1 – 集合1
    coll2 – 集合2
    Type parameters:
    <T> – 元素类型
    Returns:
    单差集

    public static <T> Collection<T> subtract(Collection<T> coll1, Collection<T> coll2);

    判断指定集合是否包含指定值,如果集合为空(null或者空),返回false,否则找到元素返回true
    Params:
    collection – 集合
    value – 需要查找的值
    Returns:
    如果集合为空(null或者空),返回false,否则找到元素返回true
    Throws:
    ClassCastException – 如果类型不一致会抛出转换异常
    NullPointerException – 当指定的元素 值为 null ,或集合类不支持null 时抛出该异常

    1. public static boolean contains(Collection<?> collection, Object value) {
    2. return isNotEmpty(collection) && collection.contains(value);
    3. }

    集合1中是否包含集合2中所有的元素,即集合2是否为集合1的子集
    Params:
    coll1 – 集合1
    coll2 – 集合2
    Returns:
    集合1中是否包含集合2中所有的元素

    1. public static boolean containsAll(Collection<?> coll1, Collection<?> coll2) {
    2. if (isEmpty(coll1)) {
    3. return isEmpty(coll2);
    4. }
    5. if (isEmpty(coll2)) {
    6. return true;
    7. }
    8. if (coll1.size() < coll2.size()) {
    9. return false;
    10. }
    11. for (Object object : coll2) {
    12. if (false == coll1.contains(object)) {
    13. return false;
    14. }
    15. }
    16. return true;
    17. }

    行转列,合并相同的键,值合并为列表 将Map列表中相同key的值组成列表做为Map的value 是toMapList(Map)的逆方法 比如传入数据:
           [
            {a: 1, b: 1, c: 1}
            {a: 2, b: 2}
            {a: 3, b: 3}
            {a: 4}
           ]
           
    结果是:
           {
             a: [1,2,3,4]
             b: [1,2,3,]
             c: [1]
           }
           
    Params:
    mapList – Map列表
    Type parameters:
    <K> – 键类型
    <V> – 值类型
    Returns:
    Map

    1. public static <K, V> Map<K, List<V>> toListMap(Iterable<? extends Map<K, V>> mapList) {
    2. return MapUtil.toListMap(mapList);
    3. }

    列转行。将Map中值列表分别按照其位置与key组成新的map。 是toListMap(Iterable)的逆方法 比如传入数据:
           {
             a: [1,2,3,4]
             b: [1,2,3,]
             c: [1]
           }
           
    结果是:
           [
            {a: 1, b: 1, c: 1}
            {a: 2, b: 2}
            {a: 3, b: 3}
            {a: 4}
           ]
           
    Params:
    listMap – 列表Map
    Type parameters:
    <K> – 键类型
    <V> – 值类型
    Returns:
    Map列表

    1. public static <K, V> List<Map<K, V>> toMapList(Map<K, ? extends Iterable<V>> listMap) {
    2. return MapUtil.toMapList(listMap);
    3. }

  • 相关阅读:
    三十分钟学会Linux的基本操作
    从局部变量说起,关于一个莫得名堂的引用和一个坑!
    【java毕业设计】 基于Spring Boot+mysql的社区团购系统设计与实现(程序源码)-社区团购系统
    Liunx笔记-内核的组成概述
    MATLAB/Simulink&&STM32CubeMX工具链完成基于模型的设计开发(MBD)(三)
    万字带你熟悉静态分析工具的评估测试
    概念解析 | 光电神经网络:optoelectronic neural network
    AI模型训练参数
    R语言使用MASS包的glm.nb函数建立负二项广义线性模型(negative binomial)、summary函数获取负二项广义线性模型模型汇总统计信息
    LoadBalancer (本地负载均衡)
  • 原文地址:https://blog.csdn.net/ChunwaiLeung/article/details/125546180