欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Arrays、Collections、Objects常用方法源码解析

程序员文章站 2024-03-06 21:25:20
...

工具类特征

  • 构造器私有。工具类直接使用,无需初始化,所以通过私有构造器让类不能new
  • 用static final关键字修饰工具类方法

Arrays

  • Arrays.sort
    底层使用双轴快速排序算法
  • Arrays.binarySearch
    前提是数组必须有序
  • Arrays.copyOfRange
    底层调用System.arraycopy这个native方法

Collections

  • 求集合中最大、最小值
//直接在最上层定义T实现Comparable接口,这样编译器就可以看出来不符合
 public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) {
        Iterator<? extends T> i = coll.iterator();
        T candidate = i.next();

        while (i.hasNext()) {
            T next = i.next();
            if (next.compareTo(candidate) > 0)
                candidate = next;
        }
        return candidate;
    }

Object

  • 相等判断
    equals和deepEquals
  • 为空判断

ArrayList初始化之后,不能被修改,可以用Collections的unmodifiableList的方法

上一篇: java中Arrays类的常用方法

下一篇: