zoukankan      html  css  js  c++  java
  • 【JAVA】【集合6】Java中的Collections工具类

    【集合】Collections工具类

    一、Collections定义

    java.util.Collections 是一个包装类。它包含有各种集合操作的 静态多态方法。此类 不能实例化,就像一 个工具类,服务于Java的Collection框架。

    其定义:

    public class Collections {
        ....
    }
    

    二、Collections常用静态方法

    1. emptyList()方法

    参考:https://blog.csdn.net/u011595939/article/details/80655788 https://baijiahao.baidu.com/s?id=1633306638148611870&wfr=spider&for=pc

    【emptyLsit()方法定义】

    {
        public static final List EMPTY_LIST = new EmptyList<>();
    
        public static final <T> List<T> emptyList() {
            return (List<T>) EMPTY_LIST;
        }
        
        private static class EmptyList<E> {
             ....
        }
    }
    

    【作用】:

    • Collections.emptyList()方法实际上就是返回了一个空的List(size为0的List对象),但是这个List和我们平时常用的那个List是不一样的。这个方法返回的List是Collections类的一个静态内部类,它继承AbstractList后并没有实现add()、remove()等方法,因此这个返回值List并不能增加删除元素

    • 既然这个List不能进行增删操作,那么它有何意义呢?

      有时候我们在函数中需要返回一个List,但是这个List是空的。

      • 有人会说,返回null也行啊。如果我们直接返回null的话,调用者还需要进行null的判断。所以一般建议返回一个空的List。
      • 又有人说,我直接返回一个new ArrayList()呗,但是new ArrayList()在初始化时会占用一定的资源。所以还是建议返回一个空的List。
    • 如上可以看到,Collections.EMPTY_LIST返回的是一个空的List。EMPTY_LIST和emptyList()方法啥区别呢? -两者的唯一区别是:Collections. emptyList()支持 泛型 ,所以在需要泛型的时候,可以使用Collections. emptyList()。

    2. 类似的还有empty方法

    emptySet()/EMPTY_SET、emptyMap()/EMPTY_MAP

    3. List对应集合的排序类方法

    (1)洗牌方法shuffle:将当前集合内的数据进行随机排序。

    public static void shuffle(List<?> list) 
    
    public static void shuffle(List<?> list, Random rnd) 
    

    (2)升序排序Sort

     //类型需是实现(比较器)Comparable接口的类,此方法只使用一种排序方案,这种方案叫作“自然比较”方案。
     public static <T extends Comparable<? super T>> void sort(List<T> list) {
            list.sort(null);
     }
     
     //参数c指定一个排序比较器,使用此比较器进行排序排序顺序。
     public static <T> void sort(List<T> list, Comparator<? super T> c) {
            list.sort(c);
     }
     
     .... 
    

    (3)逆序排序Reverse:对当前集合的元素按照相反的顺序进行排序

    public static void reverse(List<?> list) 
    

    4. SingletonList()方法

    Collections.singletonList()返回的是不可变的集合,但是这个长度的集合只有1 。

        public static <T> List<T> singletonList(T o) {
            return new SingletonList<>(o);
        }
    

    三、CollectionsUtils定义

    在org.apach.commonscollection4包中还提供了CollectionsUtils工具类。如其提供集合是否为空判断:CollectionsUtils.isEmpty(List)、CollectionsUtils.isNotEmpty(List)。

  • 相关阅读:
    iView -- TimePicker 自定义修改时间选择器选择时间面板样式
    Go语言--容器:存储和组织数据的方式--数组、切片
    php递归实现一维数组转为指定树状结构 --- 省市区处理
    Go语言--基础语法笔记
    Mongodb 安装错误汇总
    GIt -- git push 远程分支老是需要重新输入公钥密码问题处理?
    GIt -- fatal: refusing to merge unrelated histories 问题处理
    Linux -- Centos6 yum安装相关问题与处理
    Linux -- Xshell ,Xftp远程连接中文乱码怎么解决?
    Laravel 多数据库配置及查询操作
  • 原文地址:https://www.cnblogs.com/yickel/p/14793631.html
Copyright © 2011-2022 走看看